我想使用 php 文件的返回来不断更新 html 文档。因此我需要使用 jQuery 函数:
$.get('returnfunction.php', function(data) {
test=data;
document.getElementById('t1').innerHTML=test;
});
如何在 javascript 中连续调用此函数?setInterval 似乎不适合这个异步函数。
谢谢
我想使用 php 文件的返回来不断更新 html 文档。因此我需要使用 jQuery 函数:
$.get('returnfunction.php', function(data) {
test=data;
document.getElementById('t1').innerHTML=test;
});
如何在 javascript 中连续调用此函数?setInterval 似乎不适合这个异步函数。
谢谢
使用调用异步函数的问题setInterval
是,如果服务器或网络速度较慢,未响应的请求可能会累积。
以下是您可以这样做的方法:
(function doOne(){
$.get('returnfunction.php', function(data) {
test=data;
document.getElementById('t1').innerHTML=test;
setTimeout(doOne, 1000);
});
})();
这样,下一次呼叫$.get
发生在服务器应答最后一次呼叫后一秒钟。
您可能还想对失败采取行动,而不仅仅是对成功采取行动,具体取决于您的具体要求。
setInterval
可能不是一个好主意,因为不能保证顺序,因此您可以每隔 X 秒发送一次请求,这些请求要么一次全部返回,要么根本不返回,或者以随机顺序返回。您可以setTimeout
在回调中使用在 X 时间内启动另一个请求:
function getStuff() {
$.get('returnfunction.php', function(data) {
test=data;
document.getElementById('t1').innerHTML=test;
setTimeout(getStuff, 5000); //Run this func again in 5 sec
});
}