【发布时间】:2014-07-19 14:44:42
【问题描述】:
假设我有一个项目列表,所有项目都是从数据库生成的。为了这个例子,我们称它们为:
item1
item2
item3
...
itemN
假设我想允许某人拖动这些项目中的任何一个并按照他们想要的顺序放置它们(即他们可以将 item10 放在 item2 和 item3 之间,以便它现在显示在 item2 之后)。
这意味着我需要更新放置拖动项目之后的所有项目的顺序。这样做最有效的方法是什么?有什么诀窍还是我只是在之后更新所有内容?
编辑:
节点方法会更快吗?\ 节点,我的意思是每个项目都链接到下一个项目。这样,您只需要更新三个节点的子节点,然后其他一切都会正常工作。所以在我上面的例子中,在拖动之前我有:
item2.child = item3、itemN-1.child = itemN、itemN.child = null。
拖动后,我需要更新:
item2.child = itemN、itemN.child = item3、itemN-1.child = null
这是一个更好的实现吗?这样做,我想不出一种方法来正确显示来自数据库的查询列表......
【问题讨论】:
-
我只是更新每一行(即使只有两个交换的位置),但我也想知道这一点。似乎为最小化服务器端代码中的更新而付出的额外努力是不值得的,但也许还有另一种方法。您使用什么语言?
-
我在 Laravel 框架中使用 PHP。但正如你所说,我更感兴趣的是逻辑,而不是实际的代码实现。
-
有很多关于这些东西的教程,例如webresourcesdepot.com/wp-content/uploads/file/jquerydragdrop
-
不不,我的意思是数据库更新,而不是 UI 视图
-
这些“项目”是什么,它们的顺序是什么意思? 需要订购吗?相对容易的约会是否足够?