-1

问题:

我相信 .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 调用。这导致按预期按间隔调用进度函数。这让我相信负载有问题。注意我已经检查并测试了 databaseworking.php 并且那里不应该有错误。

4

2 回答 2

4

setTimeout只会运行一次。我相信您想使用setInterval哪个是循环计时器

参考:https ://developer.mozilla.org/en-US/docs/DOM/window.setTimeout

于 2013-01-04T02:42:06.223 回答
0

您需要在函数中设置新的超时。

$(window).load(function(){
    var loadContent = function() {
      $('#content').load('/ajax/databaseperform.php');
      setTimeout(loadContent, 5000);
    };
    loadContent();
});

您可以看到为什么这可能比在setInterval这里使用更可取:https ://stackoverflow.com/a/731625/330013

于 2013-01-04T02:47:40.890 回答