2009-08-29 11 views
6

मैं एक पूरे पेज हर एन सेकंड फिर से लोड करना चाहते हैं, मैं HTML में कुछ इस तरह रखा जाएगा: meta http-equiv="refresh" content="5"एजेक्स को प्रत्येक एन सेकेंड कॉल करने के लिए कैसे शेड्यूल करें?

वहाँ AJAX कॉल के लिए बात की एक ही तरह से करने के लिए एक मानक अभ्यास है? मैं पृष्ठ के कुछ हिस्सों को अद्यतन करने के लिए, पूरे पृष्ठ को रीफ्रेश किए बिना, प्रत्येक 10 सेकंड में जाने के लिए एक AJAX कॉल शेड्यूल करना चाहता हूं। यह बेहतर होगा अगर मैं अलग-अलग समय पर एकाधिक AJAX कॉल शेड्यूल कर सकता हूं, क्योंकि पृष्ठ के कुछ हिस्सों को दूसरों की तुलना में अधिक बार अपडेट किया जाना पड़ सकता है।

TIA

+2

के बाद से setTimeout और setInterval पहले से ही किया गया है:

निम्नलिखित कोड/हर 30 सेकंड में की सामग्री countStatDiv अपडेट प्राप्त विधि और चर सेकंड का उपयोग कर मूल्य की आवश्यकता के अनुसार बदला जा सकता है ताज़ा करता है उल्लेख किया गया है, आपको शायद जॉन रेसिग के नोट्स पर गौर करना चाहिए कि जावास्क्रिप्ट में टाइमर कैसे काम करते हैं - 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 (उत्तरार्द्ध शायद सबसे अच्छा है कि आप क्या करना चाहते हैं के लिए अनुकूल है)।

setInterval(makeRequest, (10 * 1000)); 

... जहां makeRequest एक समारोह कि AJAX के माध्यम से कुछ सामग्री को पुनः लोड करता है।

+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 में कॉन्फ़िगर किया गया है गतिशील डेटा/सामग्री उपलब्ध कराने के और वहाँ एक div तत्व countStatDiv jsp पेज में है URL पैटर्न के साथ एक सर्वलेट नहीं है।

   <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> 
संबंधित मुद्दे