2012-10-26 66 views
0

我正在做一個通知系統。當新帖子發佈後,用戶將立即通過屏幕上的小通知進行通知。檢查jQuery和數據庫的更改

我目前使用這樣的:

setInterval(function(){ 
checkForChanges(); 
}, 2*1000); 



function checkForChanges(){ 
    $.post("http://"+ document.domain + "/posts/checkForChanges/", 
     function(dat){ 
      if(dat>0){ 
       .... 
       /*create notification*/ 
      } 

    }); 
} 

,我想知道這是否是做或不正確的方法。因爲這是每2秒調用一次PHP函數並對數據庫進行查詢。 如果沒有新的變化,它不會做任何事情...

謝謝。

回答

2

是的,輪詢是正確的方法。沒有辦法將通知從服務器發送到客戶端。客戶必須要求他們。

2秒可能太頻繁。如果你可以逃脫10或更多,這可能會更好,但這一切都取決於用戶的數量,執行檢查的複雜性(重量)以及「近實時」的需要。

+1

本作的表現,你可以嘗試HTML5的WebSocket。如果瀏覽器支持websocket(感謝支持30%的Chrome瀏覽器),則使用websocket,否則這是正確且唯一的方法。據此http://caniuse.com/websockets 50%支持websocket。 –