2011-05-10 64 views
2

我們正在考慮一個Web應用程序,爲用戶提供系統數據的頻繁更新。最初,數據將僅限於系統壓力,流量等,但該概念可能適用於我們業務的許多領域。數據存儲在SQL Server中。如何將更新推送到非HTML5瀏覽器?

問題是,當新數據插入數據庫時​​,我們如何強制更新網頁上的表格。例如,一臺泵報告一個新的流量值。對數據庫的更新可能會受到限制,但實際上我們正在爲了我們的目的每隔一兩分鐘查看一次新更新。

這似乎是推送通知將被使用的情況,但我們可以使用ASP.NET嗎?儘管我們已經觀看了一些使用網絡套接字的推送演示,但HTML5不存在問題。

  1. 有沒有我們可以用於ASP.NET的推送技術?
  2. 如果不是,或者如果這是一個更好的解決方案,我們應該用jQuery/AJAX來查詢數據庫嗎?我們應該看看樣品的任何建議?

回答

0

通過ajax輪詢是最好的解決方案。

由於您使用ASP.NET,一些內置的AJAX控件可以使這很簡單:

http://ajax.net-tutorials.com/controls/timer-control/

如果你想這樣做的更好的工作,你可能會考慮創建一個Web服務並使用原始JavaScript或JQuery框架來處理Ajax請求/更新。我這樣說是因爲ASP.NET ajax將整個頁面視圖狀態發送回服務器,效率低下且通常不必要。

0

Comet」是您正在尋找的技術。它基本上是人們想出的一些技巧來完成你所要求的事情。這些技術中最簡單的方法是讓瀏覽器向服務器發出不斷的請求,以瞭解它應該知道的任何更新。最通用(但複雜)的技術涉及巧妙使用引用動態腳本資源的嵌入式<script>標記。

0

您可以使用ASP.NET Timer控件與UpdatePanel耦合來定期檢查新數據,然後刷新UpdatePanel

1

使用HTTP,您只能將響應發送到客戶端查詢,因此無法使用Web套接字推送內容是不可能的。
最常見的解決方案是

  • 輪詢更改服務器和更新表,如果有任何
  • 經常更新客戶端上的網頁,並具有服務器生成的頁面是否有新的數據。

後一種方法是最接近內容推送,因爲客戶端不檢索數據,但如果你要處理的數據的客戶端也將更好地只檢索數據。
後者的一個好處是服務器處理數據並將其轉換爲普通文件,服務器可以輕鬆地向多個客戶端提供服務,而不必在每次打開時創建頁面。

相關問題