2013-11-20 32 views
0

我在調查我們是否使用更新客戶等待屏幕的最佳方法。如何以最新的服務器數據更新客戶端表

目前,我們有一個系統,客戶可以到達,拿票和坐等。操作員有一個屏幕顯示等待的門票。他們可以從應用程序中「調用」那些票據,然後從隊列中獲取票據並進行處理。

運行此技術的技術是MVC應用程序和剃鬚刀視圖。運營商擁有一張帶有表格的頁面,顯示等待門票。我們有一個叫做refreshtable()的jquery函數;從setInterval運行。間隔是3秒。 可刷新的函數使用jquery ajax調用返回最新數據集的控制器操作。該ajax的成功操作然後將父div的html設置爲新的表數據。數據來自SQL。我們已經將返回數據的查詢配對,並且非常高興它是有效的。

我們有多達10個「操作員」,此屏幕不斷更新。隨着門票進入並不斷被呼叫,它需要經常更新。放慢刷新速度會導致運營商混淆。

我們的問題在於,運營商PC或網絡服務器都不是非常強大。最終,我們會砍掉這塊土地,並放入一套新的裝備,但目前這不是桌上的選項。 有沒有其他的客戶端技術,我可以考慮使用這個senario?即淘汰賽或角?

所有評論/意見是最受歡迎的。

+0

網絡套接字,但似乎沒用你的情況。僅供參考,您不應該使用間隔來執行ajax請求,而是會爲每個完整請求「重新初始化」以避免任何競爭條件(如果請求需要超過3秒的時間才能完成)的超時。 –

+0

如何超時,刷新任何少於可能的競爭條件,間隔? –

回答

0

其他像Knockout或Angular這樣的客戶端技術將不會對您有任何實際用處,因爲它們不會解決問題的核心問題。它聽起來像你正在尋找的是客戶端和服務器之間的實時通信,它基本上不能通過HTTP獲得。

這裏有一個很好的Question and Answer,它描述了可用於所需通信類型的機制。
Is there a real server push over http?

所以在最後,要解決你將要使用類似websockets但如果你的硬件您的問題/主機環境是不是最新的,那麼你可能無法使這項工作。另一種選擇是使用WinForms/WPF等桌面方法,這會給你更多的靈活性,但當然這意味着大量的重寫。

0

使用SignalR更新表格而不刷新屏幕。 SignalR

+0

我想知道signalR。使用我可以使用的設備(server 2003 webserver)和運行IE9的XP客戶端機器有一個優點。我查找了一個使用signalR在sql表中檢測到更改時推送到客戶端的演示,但無法完全找到我之後的內容。 – bruceiow

相關問題