-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 に答える