我有一個通知區域,當有人用例如jQuery或Ajax發送消息時(我的數據庫位於soap服務器中),我希望更新該消息。我想每秒鐘都執行一次soap調用,我該怎麼做?如何使用jQuery實現通知系統?
0
A
回答
3
您可以使用簡單的setInterval
結構以預定義間隔執行AJAX調用。類似這樣的:
setInterval(function(){
$.get('ajax_responder.php',dataObj,function(){
// ajax callback
// here is where you would update the user with any new notifications.
});
},5000);
上述代碼將每隔5000毫秒(每5秒)執行一次AJAX請求。
參考文獻:
3
相反的setInterval()
,我會強烈建議使用setTimeout()
。
如果有你的邏輯可能需要更長的時間比間隔時間來執行 的可能性,建議您遞歸調用使用
window.setTimeout
一個名爲 功能。例如,如果使用 setInterval每5秒查詢一次遠程服務器,網絡延遲, 服務器不響應,以及其他一系列問題可能會阻止請求在其分配的時間內完成。因此,您自己可能會發現 排隊的XHR請求不一定會以 的順序返回。對於這種情況,一個遞歸
setTimeout
圖案是優選的:(function loop(){ setTimeout(function(){ // logic here // recurse loop(); }, 1000); })();
在上面的代碼中,一個叫函數環被聲明並立即執行。
loop
在邏輯完成執行後,遞歸地稱爲 ,內部爲setTimeout
。雖然此 模式不保證以固定時間間隔執行,但確實 保證在遞歸之前先前的時間間隔已完成。
1
實時網絡的最佳方式是node.js。
Node.js是一個基於Chrome的JavaScript運行時構建的平臺,可輕鬆構建快速,可擴展的網絡應用程序。 Node.js使用事件驅動的非阻塞I/O模型,使其輕量且高效,非常適合跨分佈式設備運行的數據密集型實時應用程序。
但是,您可以通過setInterval or setTimeout來完成,在您的間隔中撥打Ajax電話。
var intval = setInterval(function()
{
$.get('url.php', {data1: "value1", data2: "value2"},
function(response)
{
// response
});
}, 1000);
相關問題
- 1. 如何實施通知系統?
- 2. 實時通知系統
- 3. Django - 實時通知系統
- 4. 實施通知系統
- 5. 實施通知系統
- 6. 實施通知系統
- 7. 使用node.js,express,套接字實現通知系統
- 8. 如何在nodejs中實現通知系統?
- 9. 如何實現簡單的通知系統?
- 10. 如何在RoR中實現通知系統?
- 11. PHP/jQuery通知系統
- 12. CakePHP通知系統與jquery
- 13. 通知系統
- 14. 通知系統
- 15. 如何在java桌面應用程序中實現系統通知
- 16. 實現情境感知對話系統
- 17. 我如何通過jQuery ajax製作通知系統?
- 18. HTML5 Websocket + Node.js實時通知系統
- 19. Rails的王菲實時通知系統
- 20. 通知系統像Facebook和實時
- 21. PHP通知系統
- 22. Python:通知系統?
- 23. AngularJS通知系統
- 24. 通知系統jQuery的,PHP和MySQL
- 25. 從MySQL在C#實現通知系統失敗
- 26. 在React上實現反應通知系統
- 27. 實現推送通知系統的最佳方式
- 28. 使用MYSQL和PHP的通知系統
- 29. 使用php的通知/警報系統
- 30. 如何用Rss新聞提要實現通訊系統?
'setInterval()'或'setTimeout()'?據我所知,在JS中擁有多個線程的唯一方法是使用網絡工作者,但您不需要這樣做。 – nnnnnn 2013-05-10 23:17:42
這與線程有什麼關係? – user151496 2013-05-10 23:19:42
@user一個人不能犯錯誤? – 2013-05-10 23:24:02