データベースから行をエコーアウトするphpページがあります。 30秒ごとにjquery/ajax経由で呼び出したいです。しかし、フォームを介してレコードを追加する場合、フォームが送信されるとすぐにページを呼び出して結果を更新するために、いつでもページを呼び出すことができるようにしたいです。誰かが私を正しい方向に向けたり、いくつかのベースコードを提供して、これを理解しようとすることができますか? jquery/ajaxにはまだ非常に新しい。
タイマーに何かを設定する場合は、JavaScriptのsetTimeout
またはsetInterval
メソッドを使用できます。
_setTimeout ( expression, timeout );
setInterval ( expression, interval );
_
ここで、expression
は関数であり、timeout
とinterval
はミリ秒の整数です。 setTimeout
はタイマーを1回実行し、expression
を1回実行しますが、setIntervalはexpression
が通過するたびにinterval
を実行します。
したがって、あなたの場合、次のように動作します:
_setInterval(function() {
//call $.ajax here
}, 5000); //5 seconds
_
Ajaxに関する限り、jQueryの ajax()
method を参照してください。インターバルを実行する場合、コードの他の場所から同じajax()
を呼び出すことを妨げるものは何もありません。
ユーザーがフォームの送信を開始するまで30秒ごとに間隔を実行し、その後新しい間隔を作成する場合は、次のことも可能です。
setInterval()
は、間隔のIDである整数を返します。
_var id = setInterval(function() {
//call $.ajax here
}, 30000); // 30 seconds
_
そのIDを変数に保存すると、clearInterval(id)
を呼び出して進行を停止できます。
次に、ajaxフォームの送信を完了した後、setInterval()
呼び出しを再インスタンス化できます。