setTimeout setInterval不起作用
<script type="text/javascript">
var second=5000;
var clearsec=2000;
function cleandoc()
{
document.body.innerHTML="";
};
function bt_submit_onclick()
{
var data={"EVID":"XX","USERNAME":"YY"};
Ext.Ajax.request({
url: 'xx/test.cgi',//动态页地址
jsonData:data,
success: function(response){
var text = response.responseText;
document.write(text);
setTimeout("cleandoc();",clearsec);
}
});
};
</script>
</HEAD>
<BODY onload="setInterval('bt_submit_onclick();',second)">
我想打开网页后定时获取后台数据,然后清空,上面代码似乎只是打开时获取一次再清空,但后来就不获取了 不知什么原因(分不多了,不好意思)
------解决方案--------------------url: 'xx/test.cgi?d='+new Date().getTime(),//动态页地址
------解决方案--------------------我觉得lz的Ext.Ajax再第二次发的时候可能失败了。所以没有setTimeout定时,lz加上:
failure : function() {
alert('失败!');
}
看看这句会不会执行。
------解决方案--------------------setTimeout函数需要递归才能反复执行,把
function cleandoc()
{
document.body.innerHTML="";
};
改成这样:
function cleandoc()
{
document.body.innerHTML="";
setTimeout("cleandoc();",clearsec);
};
然后在bt_submit_onclick()函数document.write(text);语句下这样调用:
cleandoc();
------解决方案--------------------setTimeout("cleandoc();",clearsec); 函数名不要加"" 也不要加:
------解决方案-------------------- document.write(text);
会把页面所有代码清空,所以只执行了一次, 你可以用firebug查看
建议进行修改