2009-08-29 22 views
6

, ben HTML böyle bir şey koymak istiyorum: AJAX çağrıları için bir şey aynı tür yapmak için bir standart uygulama meta http-equiv="refresh" content="5"ajax programı her N saniyede nasıl çağrılır? Ben bütün bir sayfa her N saniyeyi geri istiyorsanız

var mı? Tüm sayfa yenilemeden, sayfanın bölümlerini güncellemek için her 10 saniyede bir AJAX çağrısının programlanmasını istiyorum. Birden fazla AJAX çağrısını farklı zamanlarda planlayabilirsem, sayfanın bazı bölümlerinin diğerlerinden daha sık güncellenmesi gerekebilir.

TIA

+2

:

Aşağıdaki kodu/ değer ihtiyaca göre değiştirilebilir GET yöntemini ve değişken saniye kullanan her 30 saniyede içeriğini countStatDiv günceller yeniler bahsetmişken, John Resig'in zamanlayıcıların JavaScript'te nasıl çalıştığıyla ilgili notlarına bir göz atmalısınız. http://ejohn.org/blog/how-javascript-timers-work/ –

+0

jQuery kitaplığına bakın - popüler görünüyor özel olarak ne yaptığımı yapmak için tasarlanmış eklenti: http://www.360innovate.co.uk/blog/2009/03/periodical updater-for-jquery/ – aaa90210

cevap

11

Şunları kullanabilirsiniz setTimeout veya setInterval (ikincisi muhtemelen en uygun yapmak istediğin ne olduğunu). makeRequest AJAX bazı içerikler yeniden yükler bir fonksiyondur

setInterval(makeRequest, (10 * 1000)); 

....

+1

Bunu yaparsanız, bir önceki isteğin başka bir tane başlamadan önce bittiğini doğrulamak isterim. Ağ gecikmesi varsa istekleri toplamak istemezsiniz. – jtbandes

+0

@jtbandes: İyi nokta. Ancak, bu mantık muhtemelen "makeRequest" işlevine girer. –

+0

@jtbandes: bahşiş için teşekkürler. – 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

Ben /UpdateCount dinamik veri/içerik sağlamak için web.xml''deki yapılandırılır ve jsp sayfasında bir div elemanı countStatDiv yoktur URL Kalıbı ile bir servlet olduğunu varsayalım. setTimeout ve setInterval zaten alınmış olunduğundan

   <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> 
İlgili konular