2010-11-17 33 views
1

你如何實現像Twitter一樣的實時更新(「自開始搜索以來又有423條推文」)?我需要至少每隔10秒刷新我的頁面。我正在使用ASP.NET MVC和jQuery。像Twitter一樣的實時更新

回答

5

您可以使用setInterval javascript函數,它允許您使用輪詢定期更新的服務器AJAX:

window.setInterval(function() { 
    // This will be executed each 5s 
    // TODO: query your server for updates probably using AJAX 
    // example with jquery: 
    $.getJSON('/arethereanyupdates', function(data) { 
     if (data.isupdates) { 
      alert('yeap there are updates'); 
     } 
    }); 
}, 5000); 

還有一個推送技術在HTML5稱爲WebSockets它允許服務器通知客戶端爲更新,但當然你需要一個兼容HTML5的瀏覽器,這個瀏覽器現在不難找到並且符合WebSocket API兼容的服務器。

+0

@Darin目前HTML5 Web Sockets最棘手的部分不是瀏覽器,而是尋找支持服務器和軟件套件。 – Matt 2010-11-17 18:02:04

+0

謝謝......所以這是做到這一點的標準方法嗎?實施某種緩存以防止無數次訪問數據庫會更好嗎?或者是過度殺戮? – Prabhu 2010-11-17 18:02:41

+0

@Matt,這是正確的。我見過一些很棒的Python實現。 – 2010-11-17 18:02:55

1

如果答案是肯定的(有新東西),您可以向您的服務器發出AJAX調用請求更新,您可以向用戶顯示建議或僅更新所需的頁面內容。

關於。

升級:how-to實現類似的行爲

0

在今天的瀏覽器沒有長輪詢(又名COMET)的支持(這應該,但是,很快就會改變,與HTML5),我是輪詢服務器的每n秒,使用AJAX請求併發送最新的可見條目/項目/ tweet /時間步。然後後端計算新項目的數量並將其返回給瀏覽器。