2009-08-29 6 views
6

、私はHTMLにこのようなものを置く: meta http-equiv="refresh" content="5"N秒ごとにajaxコールをスケジュールする方法は?私はN秒ごとにリロードするページ全体をしたい場合は

はAJAX呼び出しのためのものと同じ種類を行うための標準的な方法はありますか?私はAJAXコールがページ全体をリフレッシュせずにページの一部を更新するために10秒ごとに離れるようにスケジュールしたいと思っています。異なる時間に複数のAJAX呼び出しをスケジュールすることができれば、ページの一部が他の部分よりも頻繁に更新される必要がある場合があるため、さらに優れています。

TIA

+2

のsetTimeoutとのsetIntervalが既にされているのでJavaScriptでタイマーがどのように機能するかについてのJohn Resigのノートを参照してください。http://ejohn.org/blog/how-javascript-timers-work/ –

+0

jQueryライブラリを見ると、人気があるようですプラグインは私の後ろにあったものを具体的にするように設計されています:http://www.360innovate.co.uk/blog/2009/03/periodical updater-for-jquery/ – aaa90210

答えて

11

あなたは(後者はおそらく、あなたが何をしたいかに最適です)setTimeoutまたはsetIntervalを使用することができます。 makeRequestは、AJAXを経由して、いくつかの内容をリロード機能です

setInterval(makeRequest, (10 * 1000)); 

...。

+1

これを行うと、前のリクエストが完了してから別のリクエストを開始することを確認します。ネットワークの遅れがある場合は、リクエストを積み重ねたくありません。 – jtbandes

+0

@jtbandes:良い点。しかし、このロジックはおそらく "makeRequest"関数に入ります。 –

+0

@jtbandes:チップのおかげで。 – aaa90210

4
function proxy() 
{ 
    /* implement call to your Ajax method */ 
} 

setInterval(proxy, 1000); // last arg is in milliseconds 
1
You can use serInterval method of javascript: 
Just write down the lines at the bottom of your page: 

<script> 
window.setInterval(function(){ 
    ajaxCallFunction(); //calling every 5 seconds 
}, 5000); 

function ajaxCallFunction(){ 
    //this function uses ajax to interact with the server 
} 
<script> 
0

は私が/UPDATECOUNTは、動的データ/コンテンツを提供するために、web.xmlで構成されており、JSPページ内のdiv要素countStatDivがあるURLパターンとサーブレットがあることを前提としています。

次のコードは、リフレッシュ/ GETメソッドと変数値を用いて、30秒ごとにcountStatDivの内容を更新する必要に応じて変更することができる。

   <script> 
        var request; 
        var seconds=30; 
        function getRequestObject(){ 
        setInterval(function() {sendRequest();},seconds*1000); 
        if (window.ActiveXObject){ 
        return (new ActiveXObject("Microsoft.XMLHTTP")); 
        } else if (window.XMLHttpRequest){ 
        return(new XMLHttpRequest()); 
        } else { 
        return (null); 
        } 
        } 
        function sendRequest(){ 
        request = getRequestObject(); 
        request.onreadystatechange = handleResponse; 
        request.open("GET", "../UpdateCount", true); 
        request.send(null); 
        } 
        function handleResponse(){ 
        if((request.readyState == 4)&amp;&amp;(request.status == 200)){ 
        var serverResponse = request.responseText; 
        var statCtrl=document.getElementById("countStatDiv"); 
        statCtrl.innerHTML=serverResponse; 
        } 
        } 
       </script> 
関連する問題