哪种方法在服务器上保存拖放列表会更有效;持续的ajax更新vs手动保存按钮?

问题描述 投票:0回答:2

所以我使用jQuery UI为我的客户端构建了一个拖放表单构建器。表单基本上有这么多项目,客户端将不断添加,重新排序,从列表中删除项目。我只是采取了保存列表服务器端的方法而陷入困境。

A)每当更改可排序接口时,我是否应该附加ajax事件来更新服务器。 jQuery UI有此事件。但这可能意味着在很短的时间内就会有数十个ajax请求。

B)我应该只添加一个“保存更改”的按钮,客户端只要对订单感到满意就会使用它,单击按钮并将更改保存在服务器上。不如A)整洁/漂亮,但谈到性能。你认为这个解决方案实际上更好吗?

我很感谢任何输入,因为我现在真的不确定采取哪种方法。

php ajax performance jquery-ui-sortable
2个回答
0
投票

我会选择B)因为它会更安全并且会产生更少的开销。更安全的意思是用户不会意外地保护他们不想要的东西。

选项C)将是websockets。您可以在客户端和服务器之间建立双向连接,该连接将保留用户正在编辑列表的整个会话。这会阻止您向服务器发送许多请求。一个不错的websockets PHP库是Ratchet:http://socketo.me/


0
投票

每当用户拖动几秒钟时,ajax请求的延迟时刻。这样您就可以保存所有更改,而无需强制用户进行第二次交互(单击按钮),也不会发送冗余请求。请记住,以这种方式,您应该阻止用户关闭浏览器窗口,您可以通过使用onBeforeUnload来实现。当然,您可以使用前面提到的websockets,但在某些情况下您无法做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.