问题:
我认为.load是阻塞的,但意图是异步的。
代码:
$(window).load(function(){
$('#content').load('/ajax/databaseworking.php');
setTimeout(function(){ $('#content').load('/ajax/databaseperform.php');}, 5000);
});
</script>
更多详情:
代码基本上调用databaseworking.php来进行一些数据库维护。每5秒钟进行一次ajax调用以获得进度。
我检查了我的日志。正在调用databaseworking.php和databaseperform.php。但是,不会定期调用databaseperform.php。换句话说,它只被调用一次。
作为测试,我注释掉了数据库工作调用。这导致按预期每个间隔调用进度函数。这让我相信负载存在问题。注意我已经检查并测试了databaseworking.php,那里不应该有错误。
答案 0 :(得分:4)
setTimeout
只会运行一次。我相信您想使用setInterval
这是一个定期计时器
参考:https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout
答案 1 :(得分:0)
您需要在函数中设置新的超时。
$(window).load(function(){
var loadContent = function() {
$('#content').load('/ajax/databaseperform.php');
setTimeout(loadContent, 5000);
};
loadContent();
});
您可以在此处查看为什么这可能比使用setInterval
更可取:https://stackoverflow.com/a/731625/330013