<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)">
我想打开网页后定时获取后台数据,然后清空,上面代码似乎只是打开时获取一次再清空,但后来就不获取了 不知什么原因(分不多了,不好意思)
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)">
我想打开网页后定时获取后台数据,然后清空,上面代码似乎只是打开时获取一次再清空,但后来就不获取了 不知什么原因(分不多了,不好意思)
failure : function() {
alert('失败!');
}
看看这句会不会执行。
{
var data={"EVID":"XX","USERNAME":"YY"};
Ext.Ajax.request({
url: 'vodbin/vod.fcgi?='+new Date().getTime(),//动态页地址
jsonData:data,
//params: data,//键值对形式
//params:{data:Ext.encode(data)},//原始JSON结构形式
success: function(response){
var text = response.responseText;
// process server response here
document.write(text);
//setTimeout("cleandoc();",1000);
},
failure: function() {
alert('失败!');
}
});
};还是不行,也没跳出失败
function cleandoc()
{
document.body.innerHTML="";
};
改成这样:
function cleandoc()
{
document.body.innerHTML="";
setTimeout("cleandoc();",clearsec);
};
然后在bt_submit_onclick()函数document.write(text);语句下这样调用:
cleandoc();
bt_submit_onclick()函数体内的代码(要做些修改)应该放在另外一个函数中(如命名为:getDataAndClearDoc),
在这个getDataAndClearDoc函数体内执行获取数据和清空的代码,
在getDataAndClearDoc的最后使用setTimeout("getDataAndClearDoc();",clearsec);
getDataAndClearDoc()
{
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);
}
});
setTimeout("getDataAndClearDoc();",clearsec);
}
function cleandoc()
{
document.body.innerHTML="";
};function bt_submit_onclick()
{
getDataAndClearDoc();
};
会把页面所有代码清空,所以只执行了一次, 你可以用firebug查看
建议进行修改
<html>
<head>
<meta charset="utf-8" />
<title>Temp</title>
<script type="text/javascript">
var second=5000;
var clearsec=2000;
function cleandoc()
{
document.body.innerHTML="";
};function bt_submit_onclick()
{
document.write("avbsjkiu");
setTimeout(cleandoc,clearsec);
};
</script>
</head>
<body onLoad="setInterval('bt_submit_onclick();',5000)"> </body>
</html>
<BODY onload="setInterval('bt_submit_onclick();',second)">
这里在Chrome下会发现有以下错误:
Uncaught ReferenceError: sencond is not defined 改成下面的就不会报错了:
<BODY onload="setInterval('bt_submit_onclick();',5000)">
{
document.body.innerHTML="";
}; function bt_submit_onclick()
{
var data={"EVID":"XX","USERNAME":"YY"};
Ext.Ajax.request({
url: 'tst/tst.cgi?='+new Date().getTime(),//动态页地址
jsonData:data,
success: function(response){
var text = response.responseText;
document.body.innerHTML=text;
setTimeout("cleandoc();",1000);
},
failure: function() {
alert('失败!');
}
});
};
</script>
</HEAD>
<BODY onload="setInterval('bt_submit_onclick();',5000)">
以上代码还是不行 结果与一楼一致
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Temp</title> <script type="text/javascript">
var second = 5000; var clearsec = 2000;
function cleandoc() { document.body.innerHTML = ""; };
function bt_submit_onclick() {
document.write(document.body.innerHTML+="avbsjkiu");
// setTimeout(cleandoc, clearsec);
};
</script></head>
<body onload="setInterval('bt_submit_onclick();',5000)">
1
</body>
</html>你会发现只执行了一次
<html>
<head>
<meta charset="utf-8" />
<title>Temp</title> <script type="text/javascript">
var count = 0;
function cleandoc() {
document.body.innerHTML="";
};
function bt_submit_onclick() {
var data={"EVID":"XX","USERNAME":"YY"};
// Ext.Ajax.request({
// url: 'tst/tst.cgi?=' + new Date().getTime(), //动态页地址
// jsonData: data,
// success: function(response) {
// var text = response.responseText;
// setTimeout("cleandoc();", 1000);
// document.body.innerHTML = text;
// },
// failure: function() {
// alert('失败!');
// }});
count++;
cleandoc();
document.body.innerHTML = "请求成功!! " + count+"次";
};
</script></head>
<body onload="setInterval('bt_submit_onclick();',5000)">
1
</body>
</html>这样可以,你改下吧
IE10执行一次后,页面的DOCTYPE等都被清理了,只有avbsjkiu,
FF执行一次后,选项卡标题一直显示“正在连接”。
其实,Chrome的处理是正确的,因为document.body.innerHTML和document.write应该
只对body元素内的内容进行覆写,不应该影响doctype, html, head等页面元素。