2012-07-19 72 views
0

我正在處理從SQL服務器操作數據的Intranet應用程序。應用程序必須支持多個用戶使用相同的數據源/相同的表格。該應用程序使用一個jQuery datatable library,通過對我的MVC控制器中的JSON結果操作進行Ajax調用,並在表中呈現的一些Ajax鏈接允許以模式彈出窗口的形式進行CRUD操作。當彈出窗口提交CRUD操作時,它將關閉並調用數據表上的刷新。在網頁上保持JSON數據最新的最佳做法是什麼?

一切工作非常好,但是,我希望該數據表更新如果數據由另一個用戶(或另一個瀏覽器/選項卡)更改而不刷新表。

一種方法是每隔X毫秒從服務器輪詢哈希並更新哈希值是否發生變化,但我不太喜歡這個選項,因爲我覺得它可能會很快失控,需要管理多少表。

我想知道你們對投票方法的看法,並且如果你有另一種更流暢,更清潔或者更簡單的X方法更好的方法。

非常感謝!

+0

也許[SignalR](http://signalr.net)可以幫助你。每次命令發送應用程序時,都可以將結果推送給每個連接的客戶端。 – 2012-07-19 14:38:06

+0

你應該發佈這個答案! ^^謝謝!這就是我需要的。 – Pluc 2012-07-19 14:48:01

+0

@Darin Dimitrov首先發布了答案。讓他得到它(沒有更多需要):) – 2012-07-19 14:49:51

回答

4

我想知道你們的想法輪詢方法,如果 你有這將是更流暢,更乾淨或乾脆爲X原因 更好的做法的替代品。

輪詢的替代方法是推動,這是更有效。結帳SignalR。這是一個introductory blog post

+1

在閱讀了超過100個帖子後,我得到了幫助。 :D Merci!這應該會創造奇蹟。 – Pluc 2012-07-19 14:47:22

0

您是否考慮過使用http://socket.io/來創建websocket?

這將允許服務器在您的表更新時將數據推送到相關的客戶端,並且還允許用戶在不刷新的情況下將其更改推送到服務器(就像ajax一樣)。

Socket.io還具有很好的回退機制,因此它在所有主流瀏覽器(即使是IE6)上都受支持。 http://socket.io/#browser-support

+0

我不需要在IE 8下支持任何東西,但我會看看它。然而,Darin建議的SignalR看起來更精細一點,更容易插入。但我仍然會看看它!謝謝! – Pluc 2012-07-19 14:50:22

相關問題