दिलचस्प पोस्ट
डेटाबेस से ड्रॉपडाउन सूची को पॉप्युलेट करने का सही तरीका क्या है? कोणीय – वादे बनाम अवलोकन Git: हटाए गए (रिमोट) शाखा पुनर्प्राप्त करें कैसे एक सीएनएन सबडोमेन से एक आनेवाला अनुरोध (PHP स्क्रिप्ट के साथ) का पता लगाने के लिए? मैं अपने आवेदन में UITapGestureRecognizer को कैसे लागू करूं? लिनक्स पर समग्र सीपीयू उपयोग (जैसे 57%) कैसे प्राप्त करें PHP एक दिए गए निर्देशिका के सभी उप-निर्देशिकाएं प्राप्त करें एएसपी.नेट वेब एपीआई में सभी असम्बद्ध अपवादों को पकड़ो आंतरिक मेमोरी में एंड्रॉइड फ़ोल्डर्स बनाएँ स्थानीय फ़ाइलों के लिए xmlhttprequest इंडेंटेशन त्रुटि: unindent किसी भी बाहरी इंडेंटेशन स्तर से मेल नहीं खाता है फिट करने के लिए एक UILabel आकार एंड्रॉइड एपीके फ़ाइल कैसे साइन करे छवि में किसी विशेष रंग को कैसे बदलना है? महीना गणना का अंतिम दिन

JQuery- setTimeout या अन्य विधि के साथ स्वत: ताज़ा div?

आप जावास्क्रिप्ट (विशेष रूप से, jQuery) के साथ एक ऑटो-रीफ्रेशिंग div कैसे करते हैं?

मैं setTimeout विधि के बारे में जानता हूँ, लेकिन क्या यह वास्तव में एक अच्छा अभ्यास है? क्या कोई बेहतर तरीका है?

 function update() { $.get("response.php", function(data) { $("#some_div").html(data); }); window.setTimeout("update();", 10000); } 

वेब के समाधान से एकत्रित समाधान "JQuery- setTimeout या अन्य विधि के साथ स्वत: ताज़ा div?"

एक और संशोधन:

 function update() { $.get("response.php", function(data) { $("#some_div").html(data); window.setTimeout(update, 10000); }); } 

इस के साथ अंतर यह है कि एजेक्स कॉल के बाद यह एक 10 सेकेंड की प्रतीक्षा करता है। तो वास्तव में रिफ्रेश के बीच का समय 10 सेकेंड + एजेक्स कॉल की लंबाई है। इसका लाभ यह है कि यदि आपका सर्वर 10 सेकंड से अधिक समय का जवाब देता है, तो आपको दो (और आखिरकार, कई) एक साथ AJAX कॉल हो रहे हैं

इसके अलावा, अगर सर्वर का जवाब देने में विफल रहता है, तो यह कोशिश नहीं करेगा

मैंने अतीत में एक समान विधि का उपयोग किया है जो एजाक्स का उपयोग और भी जटिल व्यवहार को संभालने के लिए किया है:

 function update() { $("#notice_div").html('Loading..'); $.ajax({ type: 'GET', url: 'response.php', timeout: 2000, success: function(data) { $("#some_div").html(data); $("#notice_div").html(''); window.setTimeout(update, 10000); }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#notice_div").html('Timeout contacting server..'); window.setTimeout(update, 60000); } } 

यह लोड करते समय एक लोडिंग संदेश दिखाता है (सामान्य "वेब 2.0" शैली के लिए एक एनिमेटेड जीआईएफ डाल दिया गया है) अगर सर्वर बार (इस मामले में 2 एस से अधिक समय लगता है) या कोई अन्य प्रकार की त्रुटि होती है, तो यह एक त्रुटि दिखाती है, और यह सर्वर से संपर्क करने से पहले 60 सेकंड के लिए प्रतीक्षा करता है।

यह विशेष रूप से फायदेमंद हो सकता है जब बड़ी संख्या में उपयोगकर्ताओं के साथ तेजी से अद्यतन करते हैं, जहां आप नहीं चाहते कि हर किसी को अचानक एक ठोकर खाई सर्वर के अनुरोधों के साथ अपंग कर दें जो सभी बस वैसे भी समय समाप्त हो रहे हैं।

 $(document).ready(function() { $.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh setInterval(function() { $('#notice_div').load('response.php'); }, 3000); // the "3000" }); 

एक jQuery टाइमर प्लगइन है जिसे आप कोशिश कर सकते हैं

 function update() { $("#notice_div").html('Loading..'); $.ajax({ type: 'GET', url: 'jbede.php', timeout: 2000, success: function(data) { $("#some_div").html(data); $("#notice_div").html(''); window.setTimeout(update, 10000); }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#notice_div").html('Timeout contacting server..'); window.setTimeout(update, 60000); } }); } $(document).ready(function() { update(); }); 

यह बेहतर कोड है