2010-08-22 17 views
186

है, मैं jQuery.ajax(settings) के जादू का उपयोग कर रहा हूं।

हालांकि, मुझे आश्चर्य है कि अगर किसी ने टाइमआउट सेटिंग के साथ बहुत कुछ खेला है?

मुझे पता है कि यह मूल रूप से अनुरोध के लिए स्थानीय समय को निर्देशित करने के लिए है, लेकिन यदि टाइमआउट पहुंचने पर यह कुछ भी ट्रिगर कर सकता है? या यह सिर्फ प्रतिक्रिया के लिए सुनना बंद कर देता है?

jQuery साइट को पढ़ना, मैं देख सकता हूं कि कोई तर्क पारित नहीं हुआ है, इसलिए यह एक क्षमता के साथ एक साधारण सेटिंग की तरह लगता है। जो ठीक है

लेकिन, टाइमआउट पहुंचने पर मैं एक चेतावनी या कुछ फ़ंक्शन ट्रिगर करना चाहता हूं। मैं देख सकता हूं कि इस मामले में त्रुटि सेटिंग ट्रिगर नहीं होती है।

$("form#testform").submit(function(){ 

var allFormValues = $("form#testform").serialize(); 

    $.ajax({ 
    cache:false, 
    timeout:8000, // I chose 8 secs for kicks 
    type:"POST", 
    url:"someurl.php", 
    data:allFormValues, 
    error:function(){ alert("some error occurred") }, 
    success:function(response){ alert(response); } 
    }); 

}); 

किसी को भी कैसे समय समाप्ति के साथ और अधिक काम करने के लिए पता है:

यहाँ मेरी टुकड़ा है?

उत्तर

325

यदि आपका त्रुटि ईवेंट हैंडलर टाइमआउट होने पर तीन तर्क (xmlhttprequest, textstatus, और message) लेता है, तो स्थिति तर्क 'टाइमआउट' होगा।

प्रति jQuery documentation:

दूसरा तर्क (शून्य के अलावा) के लिए संभावित मान हैं "टाइमआउट", "त्रुटि", "notmodified" और "parsererror" कर रहे हैं।

आप तदनुसार अपनी त्रुटि को संभाल सकते हैं।

मैंने यह fiddle बनाया जो इसे प्रदर्शित करता है।

$.ajax({ 
    url: "/ajax_json_echo/", 
    type: "GET", 
    dataType: "json", 
    timeout: 1000, 
    success: function(response) { alert(response); }, 
    error: function(xmlhttprequest, textstatus, message) { 
     if(textstatus==="timeout") { 
      alert("got timeout"); 
     } else { 
      alert(textstatus); 
     } 
    } 
});​ 

jsFiddle के साथ, आप ajax कॉल परीक्षण कर सकते हैं - यह जवाब देने से पहले 2 सेकंड इंतजार करेंगे। मैंने टाइमआउट सेटिंग को 1 सेकंड पर रखा है, इसलिए इसे त्रुटि होल्डर में 'टाइमआउट' के टेक्स्टस्टैटस को त्रुटि और वापस भेजना चाहिए।

आशा है कि इससे मदद मिलती है!

+2

खुशी है कि यह काम किया! हाँ, वे प्रलेखन में उन स्थिति मूल्यों को छिपाते हैं। –

+93

वे प्रलेखन में बहुत कुछ छुपाते हैं। – Aaron

+0

क्यों 2 सेकंड? आपका उदाहरण स्पष्ट रूप से 1000 (एमएस) –

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