0

我正在开发一个处理来自 SQL 服务器的数据的 Intranet 应用程序。该应用程序必须支持多个用户使用相同的数据源/相同的表。该应用程序使用一个jQuery 数据表库,该库由 Ajax 调用提供给我的 MVC 控制器中的 JSON 结果操作,以及在表中呈现的一些 Ajax 链接,允许以模式弹出窗口的形式进行 CRUD 操作。当弹出窗口提交 CRUD 操作时,它会关闭并在数据表上调用刷新。

一切都很好,但是,如果另一个用户(或另一个浏览器/选项卡)更改了数据而没有刷新表,我希望该数据表能够更新。

一种方法是每 X 毫秒从服务器轮询一次 Hash 并在哈希更改时更新,但我不太喜欢这个选项,因为我觉得它可能很快就会因为要管理的表数量而失控。

我想知道你们对轮询方法的看法,以及由于 X 原因,您是否有一种更流畅、更清洁或只是更好的做法的替代方法。

非常感谢!

4

2 回答 2

4

我想知道你们对轮询方法的看法,以及由于 X 原因,您是否有一种更流畅、更清洁或只是更好的做法的替代方法。

轮询的替代方法是推送,它的效率要高得多。结帐SignalR。这是一篇介绍性的博客文章

于 2012-07-19T14:37:14.000 回答
0

您是否考虑过使用http://socket.io/创建 websocket?

这将允许服务器在您的表更新时将数据推送到相关客户端,并且还允许用户将他们的更改推送到您的服务器而无需刷新(就像 ajax 一样)。

Socket.io 也有一个很好的回退机制,所以它在所有主流浏览器上都支持(是的,甚至是 IE6)。http://socket.io/#browser-support

于 2012-07-19T14:46:57.500 回答