2011-06-09 19 views
9

मैंने देखा है कि अगर आप AJAX अनुरोध विफल हो जाते हैं तो आम तौर पर क्या करना है, क्या यह किसी प्रकार के लूप में फिर से प्रयास करना संभव है ताकि यह कम से कम x राशि की कोशिश कर सके इससे पहले कि यह बंद हो जाता है?विफलता पर फिर से AJAX अनुरोध को फिर से प्रयास करें

$.ajaxSetup({ 
    "error":function() { 
    alert("error"); 
}}); 

कौन सा सब AJAX अनुरोध (मुझे ठीक कर लें मैं गलत हूँ) के लिए लागू होगी: मैं इस कोड से पहले का इस्तेमाल किया है।

$.ajaxSetup({ 
    "error":function() { 
    $(this).ajax; 
}}); 
चाहेंगे

इस काम:

मैं कुछ इस तरह करना चाहते हैं? या इससे भी बेहतर: क्या यह करने का सही तरीका होगा? मैं एक गिनती प्रणाली में पुनः प्रयास लपेटूंगा ताकि यह असीमित रूप से पुनः प्रयास न करे। मेरे आवेदन में 10 में से 9 बार यह सही तरीके से काम करेगा लेकिन हर अब और फिर एपीआई में से एक जो मैं इंटरफेसिंग कर रहा हूं, एक त्रुटि लौटाएगा।

कोई भी सुझाव मदद करेगा, धन्यवाद! हालांकि मैं इसके खिलाफ सलाह देते सकता

var attempts; 
    function doAjaxRequest() { 
     attempts = 0; 
     doAjaxRequestLoop(); 
    } 

    function doAjaxRequestLoop() { 
     attempts += 1; 
     if (attempts > 10) { 
      alert('too many attempts.'); 
      return; 
     } 

     $.ajax({ // do your request 
      error: function (error) { 
       doAjaxRequestLoop(); 
      } 
     }); 
    } 

</script> 

:

+0

संभावित डुप्लिकेट [मैं असफल AJAX अनुरोध कैसे भेजूं?] (Http://stackoverflow.com/questions/8881614/how-do-i-resend-a-failed-ajax-request) – user2284570

उत्तर

13

आप कुछ इस तरह की कोशिश कर सकते हैं। अगर अनुरोध विफल रहता है तो आप यह जानना चाहेंगे कि यह क्यों विफल हुआ। क्या होगा यदि उपयोगकर्ता ने अपना इंटरनेट कनेक्ट खो दिया हो? कोई और प्रयास फिर से असफल होने की संभावना है तो पुनः प्रयास क्यों करें?

+2

आपको 'doAjaxRequestLoop'' doAjaxRequest' के अंदर कॉल करें। अभी यह सिर्फ 0 मान को सेट करता है और कभी भी कुछ नहीं करता है। –

+0

आपका अधिकार! मैं भीड़ में होने के लिए यही मिलता हूं। पोस्ट अपडेट किया गया। – Jay

+0

धन्यवाद! तो किसी कारण से क्लाइंट एपीआई में से एक जो मैं काम कर रहा हूं, वास्तव में कमजोर लगता है, ज्यादातर समय यह काम करता है लेकिन हर अब और फिर एक अनुरोध समय-समय पर होगा। अगर मैं इसे कम से कम एक बार कोशिश कर सकता हूं, तो मुझे लगता है कि यह काफी ठोस बना देगा। मुझे लगता है कि यह करने का यह एक अच्छा तरीका है, धन्यवाद जय –

संबंधित मुद्दे