2010-03-24 17 views
57

मुझे एक बग रिपोर्ट मिली है कि मैं डुप्लिकेट नहीं कर सकता, लेकिन AJAX-कॉल टाइमआउट वर्तमान सर्वोत्तम अनुमान है।JQuery AJAX कॉल डिफ़ॉल्ट टाइमआउट मान

तो मैं एक jQuery $.ajax() कॉल के टाइमआउट के लिए डिफ़ॉल्ट मान जानने का प्रयास कर रहा हूं। किसी के पास कोई विचार है? इसे jQuery दस्तावेज़ में नहीं मिला।

अग्रिम धन्यवाद, मार्कस

+1

हम्म, मुझे लगता है कि यह ब्राउज़र विशिष्ट है। –

+1

http://stackoverflow.com/questions/1342310/where-can-i-find-the-default-timeout-settings-for-all-browsers –

+0

http://stackoverflow.com/questions/5798707/browser-timeouts –

उत्तर

36

वहाँ एक मानकीकृत डिफ़ॉल्ट मान होना करने के लिए प्रतीत नहीं होता। मुझे लगता है कि डिफ़ॉल्ट 0 है, और टाइमआउट ईवेंट ब्राउज़र और नेटवर्क सेटिंग्स पर पूरी तरह से निर्भर है।

आईई के लिए, XMLHTTPRequests here के लिए टाइमआउट संपत्ति है। यह शून्य के लिए डिफ़ॉल्ट है, और यह कहता है कि नेटवर्क स्टैक पहली बार होने की संभावना है ( रास्ते से ऑनटाउट ईवेंट उत्पन्न नहीं करेगा)।

+0

तो मूल रूप से jQuery किसी भी का उपयोग नहीं करता है इसके लिए डिफ़ॉल्ट मान। सफारी पर समस्या की सूचना मिली थी। मुझे लगता है कि मैं बस कुछ लम्बे टाइमआउट मूल्य को मजबूर करने की कोशिश करूंगा और सबसे अच्छा उम्मीद करूँगा ... धन्यवाद! – Marcus

+0

@Marcus: क्या यह वास्तव में काम करता था? मुझे नहीं पता कि टाइमआउट हमेशा ब्राउज़र के टाइमआउट मान को ओवरराइड करता है (भले ही आपका AJAX टाइमआउट मान ब्राउज़र के मुकाबले बड़ा हो) –

+0

@ पेक्का: इस पर कोई विचार? http://stackoverflow.com/q/24526201/759452 –

16

एक तरफ, एक समान बग का निदान करने का प्रयास करते समय मुझे एहसास हुआ कि jquery की AJAX त्रुटि कॉलबैक टाइमआउट के कारण विफल होने पर "टाइमआउट" की स्थिति देता है।

$.ajax({ 
    url: "/ajax_json_echo/", 
    timeout: 500, 
    error: function(jqXHR, textStatus, errorThrown) { 
     alert(textStatus); // this will be "timeout" 
    } 
}); 

Here it is on jsfiddle:

यहाँ एक उदाहरण है।

+0

हां, सभी त्रुटि प्रकार देखें http://stackoverflow.com/questions/3543683/determine-if-ajax-error-is-a-timeout –

4

डिफ़ॉल्ट रूप से कोई टाइमआउट नहीं है।

+2

क्या आप अपने दावे का समर्थन करने वाले कुछ स्रोत साझा कर सकते हैं। – Panther

+0

मैंने अभी इसका परीक्षण किया है और इसकी पुष्टि कर सकते हैं। –

+2

आप टाइमआउट की अनुपस्थिति का परीक्षण कैसे कर सकते हैं? यह डिफ़ॉल्ट रूप से वास्तव में लंबा हो सकता है – Kaktus

0

XMLHttpRequest.timeout संपत्ति कई मिलीसेकंड का प्रतिनिधित्व करती है जो अनुरोध स्वचालित रूप से समाप्त होने से पहले ले सकता है। डिफ़ॉल्ट मान 0 है, जिसका अर्थ है कि कोई टाइमआउट नहीं है। एक महत्वपूर्ण नोट टाइमआउट का उपयोग सिंक्रोनस XMLHttpRequests अनुरोधों के लिए नहीं किया जाना चाहिए, जो किसी दस्तावेज़ वातावरण में उपयोग किया जाता है या यह InvalidAccessError अपवाद फेंक देगा। आप के साथ विंडो के साथ सिंक्रोनस अनुरोधों के लिए टाइमआउट का उपयोग नहीं कर सकते हैं।

आईई 10 और 11 सिंक्रोनस अनुरोधों का समर्थन नहीं करते हैं, समर्थन के साथ अन्य ब्राउज़रों में भी चरणबद्ध हो रहा है। यह detrimental effects के कारण उन्हें बनाने से होता है।

अधिक जानकारी here मिल सकती है।

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