嗨,我有一个消息框,用户可以放置消息,我使用ajax更新消息,并使用setinterval每20秒自动更新一次消息。但是,我使用的代码使间隔调用使页面超载。从下面的代码中,任何人都可以看到我在哪里出错了,以及我将如何对其进行修正,这样间隔就在一个循环中。谢谢
$(function(){
$(document).keypress(function() {
clearInterval(running);
})
var running = setInterval(function (){
var varLISTID = document.getElementById('datacatch').getAttribute("data-variable-LISTID");
var varUSERACCOUNTNAME = document.getElementById('datacatch').getAttribute("data-variable-USERACCOUNTNAME");
var mylink = "loadmessages.php?listID=" + varLISTID + "&useraccountname="+ varUSERACCOUNTNAME;
$('#infobox1').load(mylink);
},20000); //10s
});
答案 0 :(得分:0)
改为使用$(document).keydown(function() {...})
。如官方文档here所述,.keypress
可能有问题。
答案 1 :(得分:-1)
$(function(){
var running = setTimeout(function (){
alert('up');
var varLISTID = document.getElementById('datacatch').getAttribute("data-variable-LISTID");
var varUSERACCOUNTNAME = document.getElementById('datacatch').getAttribute("data-variable-USERACCOUNTNAME");
var mylink = "loadmessages.php?listID=" + varLISTID + "&useraccountname="+ varUSERACCOUNTNAME;
$('#infobox1').load(mylink);
},20000);//10s
$(document).keypress(function() {
clearInterval(running);
})
});
SetTimeout代替setInterval已解决了该问题。
谢谢。