0

タスクを含むhtmlテーブルがあり、最後の列は「ステータス」と呼ばれます。簡単なことをする必要があります。進行中の場合はgifアイコンをアニメーション化する通常の方法で各タスクのステータスを追跡するか、完了した場合はOKチェックを実行します。

私は過去に$.ajaxを使用してphpスクリプトを呼び出し、1分ごとに更新されたことを確認しました。このスクリプトは、ブール列をチェックする1つのクエリを含むPHPスクリプトでした。このアプローチは問題ありませんでしたが、それでも、これがこのようなことを行うための最も愚かな方法である可能性が高いことを私は知っていました。

私はこれを行うためのより堅牢な方法を探しています、そして私が検索している間に私はこのスニペットを見つけました

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function() {
$.ajaxSetup({ cache: false }); // This part addresses an IE bug.  without it, IE will only load the first number and will never refresh
setInterval(function() {
$('#divToRefresh').load('/path/to/your/php/file/userCount.php');
}, 3000); // the "3000" here refers to the time to refresh the div.  it is in milliseconds.
});
</script>

このようなものは機能する可能性がありますが、タスクが実際に終了した場合、この更新を停止するにはどうすればよいですか?この投稿の「GauravSharma」の答えのようなものが行く方法ですか?

私はJqueryの初心者なので、このようなことをどのように行うかを知りたいと思っています。これは一般的な作業のようです。5行で実行できるコードを2ページ作成して、車輪の再発明を行うことを躊躇します。 -)

4

2 に答える 2

0
var interval = setInterval(function() {
    $('#divToRefresh').load('/path/to/your/php/file/userCount.php');
    if(somecondition){
        clearInterval(interval);
    }
}, 3000); // the "3000" here refers to the time to refresh the div.  it is in milliseconds.

呼び出しclearInterval(interval)は繰り返しを停止します。

于 2012-10-27T10:53:19.467 に答える
0

このようなコードを実装する必要があります

var interval = null; // has to be global in this example

// [...] your code

interval = setInterval(function(...));

// [...] your code

スクリプトが完了したら、clearInterval(interval)どこからでも呼び出すだけです

于 2012-10-27T10:54:50.040 に答える