2010-12-28 17 views
37

誰かが私を助けてくれるのだろうかと思っていました。私はデータベースから行をエコーするPHPページを持っています。私はそれをjquery/ajax経由で30秒ごとに呼びたいと思っています。しかし、私はまた、フォームを介してレコードを追加すると、フォームが送信されるとすぐに結果を更新するためにajaxに呼び出されたページを必要とするように、いつでもページを呼び出すことができるようにしたい。私はこれを理解しようとすることができます誰も正しい方向に私を指すか、いくつかの基本コードを提供できますか?まだ非常に新しいjquery/ajaxです。あなたはタイマーに何かを設定したい場合はJquery/Ajaxでタイマーを呼び出す

答えて

67

は、JavaScriptのsetTimeoutsetIntervalメソッドを使用することができます。expressionが機能してtimeoutintervalある

setTimeout (expression, timeout); 
setInterval (expression, interval); 

はミリ秒単位の整数です。 setTimeoutは、タイマーを1回実行し、expressionを1回実行しますが、setIntervalはintervalが成功するたびにexpressionを実行します。

だからあなたの場合には、それはこのようなものに動作します:限りアヤックスが行くよう

setInterval(function() { 
    //call $.ajax here 
}, 5000); //5 seconds 

を、jQueryのajax() methodを参照してください。インターバルを実行すると、コード内の他の場所から同じajax()を呼び出すことを止めるものはありません。

+0

ありがとうございました!したがって、上記のコードを使用して、5秒ごとにajax呼び出しをリフレッシュしてから、同じページに誰かが記入したフォームがある場合は、レコードを追加してから同じsetInterval関数を呼び出すことができます一度にその機能の2つのインスタンスを実行していますか? – John

+8

あなたが望むのは、ユーザーがフォームの提出を開始してから30秒後に新しい間隔を作成するまで間隔を30秒ごとに実行することです。それも可能です。 'setInterval()'はインターバルのIDである整数を返します。そのIDを変数に格納すると、進行を止める 'clearInterval(id)'を呼び出すことができます。次に、ajaxフォームの送信を完了した後で、 'setInterval()'コールを再インスタンス化できます。 – treeface

関連する問題