在我的應用程序中,我每秒輪詢webserver的消息並在前端顯示它們。 我使用setInterval來實現這一點。但是,只要用戶停留在該頁面上,即使沒有數據,客戶端也會繼續使用請求輪詢服務器。當通過設置變量不再生成更多消息時,服務器會發出提示。 我想用這個變量clearInterval並停止計時器,但沒有奏效。在這種情況下我還能使用什麼? 我正在使用jquery和django。這裏是我的代碼:setInterval替代
jquery: var refresh = setInterval( function() { var toLoad = '/myMonitor'+' #content'; $('#content').load(toLoad).show(); }, 1000); // refresh every 1000 milliseconds }); html: div id=content is here
我可以訪問django變量在html中完成每個刷新。我如何設置clearInterval?
注:堆棧溢出不會讓我把爲& GT & LT這樣的HTML是不完整的
感謝
更新2010年3月16日 我必須做一些錯誤的。但無法弄清楚。這是我與clearTimer的腳本,它不起作用。
var timer = null; $(function(){ if ("{{status}}" == "False") { clearInterval(timer); } else { timer = setInterval( function(){ var toLoad = '/myMonitor'+' #content'; $('#content').load(toLoad).show();} ,1000); // refresh every 1000 milliseconds } });
status是一個在「views.py」(Django)中設置的布爾值。 謝謝你一堆。
您可能會考慮研究Django和jQuery Comet實現以獲得更好的服務器輪詢。 http://www.rkblog.rk.edu.pl/w/p/django-and-comet/ - http://plugins.jquery.com/project/Comet – 2010-03-15 17:01:02
什麼「沒有工作」清除間隔計時器?這對我來說總是有效的。也許你做這件事的方式有點不對。 – Pointy 2010-03-15 17:12:18
謝謝你們,我會看看Comet的實現。 尖尖的, 我正在訪問Django模板中的變量{{result}}。我試着用「if」和「while」循環在Jquery中檢查這一點,並清除間隔,但這不起作用。我很可能做錯了。請你能指點一下我應該把支票放在哪裏或怎麼放? 謝謝 – spyder 2010-03-15 17:30:11