replace_html或insert_html

时间:2009-11-11 16:51:47

标签: ruby-on-rails prototype

Hello stackoverflow pals。我是一个新的rails学习者。我的问题是:我列出索引中的所有项目,我也在这个页面中使用ajax来向数据库中插入新项目。将新项目插入数据库后,我是否应该再次从数据库中获取所有项目并替换整个项目列表,或者只使用insert_html将新项目添加到列表中?谢谢。

4 个答案:

答案 0 :(得分:2)

仅将新项目添加到列表中可能会更快地响应并且会降低网络流量。但是,作为程序员,它对你来说也会有点复杂,因为你必须弄清楚在哪里插入它,并且通常对表状态进行更多管理。但无论哪种方式都是有效的方法。

答案 1 :(得分:1)

如果您通过AJAX跟踪客户端删除并更新客户端关于删除和插入的视图,则不需要经常更换所有列表。如果多个用户同时操作数据,那么定期轮询服务器可能是有意义的,这样一个用户就不会以过时的视图结束。在这种情况下,您应该查看像Juggernaut这样的Comet实现,以便服务器可以将数据推送到客户端,而不是依赖于简单的轮询。

您还可以考虑加强客户端Javascript并在客户端和服务器之间实现纯JSON传递。这样,您只能将数据从服务器来回传递到客户端,客户端的浏览器会根据服务器的JSON和使用Javascript构建的逻辑使视图保持最新。

答案 2 :(得分:0)

如果你一直担心会有大量的流量冲击页面,我会尽可能多地推动这个问题。进行插入并相应地更新列表。

答案 3 :(得分:0)

如果新项目始终位于底部且您无法对其进行排序,我只需将新项目附加到底部。

如果您可以对它们进行排序或需要将其插入特定位置,我会重新渲染整个表格。

就个人而言,在成为问题之前,我不会担心性能差异;我会选择最简单的方法。