सर्वर के अनुरोध के उत्तर देने से पहले त्रुटि से पहले ब्राउज़र कितनी देर तक प्रतीक्षा कर सकता है? क्या यह समय असीमित हो सकता है?AJAX अनुरोध के बाद ब्राउज़र कब तक प्रतीक्षा करेगा?
उत्तर
यदि आप एक jQuery $ .ajax कॉल का उपयोग कर रहे हैं तो आप टाइमआउट स्थिति के साथ अनुरोध लौटने से पहले समय की मात्रा को नियंत्रित करने के लिए टाइमआउट प्रॉपर्टी सेट कर सकते हैं। टाइमआउट मिलीसेकंड में सेट है, इसलिए इसे एक बहुत ही उच्च मूल्य पर सेट करें। आप इसे "असीमित" के लिए भी 0 पर सेट कर सकते हैं लेकिन मेरी राय में आपको इसके बजाय एक उच्च मान निर्धारित करना चाहिए।
नोट: असीमित actually the default है लेकिन अधिकांश ब्राउज़रों में डिफ़ॉल्ट टाइमआउट होता है जो हिट हो जाएगा।
जब टाइमआउट के कारण एक AJAX कॉल वापस कर दिया जाता है तो यह "टाइमआउट" की त्रुटि स्थिति के साथ वापस आ जाएगा, यदि आवश्यक हो तो आप एक अलग मामले के साथ संभाल सकते हैं।
तो तुम 3 सेकंड तक समाप्ति सेट, और यहाँ टाइमआउट को संभालने के लिए चाहते हैं, तो एक उदाहरण है:
$.ajax({
url: "/your_ajax_method/",
type: "GET",
dataType: "json",
timeout: 3000, //Set your timeout value in milliseconds or 0 for unlimited
success: function(response) { alert(response); },
error: function(jqXHR, textStatus, errorThrown) {
if(textStatus==="timeout") {
alert("Call has timed out"); //Handle the timeout
} else {
alert("Another error was returned"); //Handle other error type
}
}
});
'टाइमआउट' मान को '0' पर सेट करना AJAX टाइमआउट को अनिश्चित अवधि (असीमित पढ़ें) पर सेट करता है। – John
@ जॉन या इसे बिल्कुल भी सेट नहीं करना (पढ़ना 0 डिफ़ॉल्ट है)। –
मुझे टेक्स्टस्टैटस में "त्रुटि" नहीं मिल रहा है "टाइमआउट" – UmaShankar
क्या आप जो हासिल करने की कोशिश कर रहे हैं उसके बारे में कुछ और बता सकते हैं - क्या आपके पास सर्वर पर लंबी चल रही प्रक्रिया है, क्या आप केवल स्थानीय मशीन पर सेटिंग्स बदलना चाहते हैं या आप प्रबंधित करने के तरीके के बाद हैं यह बड़ी संख्या में उपयोगकर्ताओं के लिए है?
ब्राउज़र कितने समय तक इंतजार करेगा, कई कारकों पर निर्भर करता है उदा। जहां टाइमआउट होता है - क्या यह टीसीपी स्तर, सर्वर या स्थानीय ब्राउज़र पर है?
यदि आपके पास सर्वर पर लंबी चल रही प्रक्रिया है और आप बाद में एक वेबपृष्ठ अपडेट करना चाहते हैं तो इसे संभालने के सामान्य तरीके को लंबी प्रक्रिया को अतुल्यकालिक रूप से चलाने और ग्राहक पूर्ण होने पर सूचित करना है। एक AJAX कॉल है जो सर्वर को मतदान करता है, या HTTP 1.1 का उपयोग करता है और क्लाइंट को अधिसूचना स्ट्रीम प्रदान करता है।
किसी भी मामले में कनेक्शन बंद होने के लिए अभी भी संभव है, इसलिए ग्राहक को इसे फिर से खोलने की क्षमता की आवश्यकता होगी।
हां और नहीं। हां सर्वर ऐसा कर सकता है या ऐसा करने के लिए कॉन्फ़िगर किया जा सकता है, कोई ब्राउज़र नहीं (मुझे संस्करण/वितरक विनिर्देशों के बारे में पता नहीं है) में टाइमआउट सक्षम हो सकता है।
2 समाधान कर रहे हैं, हालांकि प्राप्त करने/HTTP पर इस नकल के लिए:
- इस सरल एक लंबी चलने वाली स्क्रिप्ट और आप इस जाने का रास्ता नहीं है परिणामों के लिए इंतज़ार कर रहे हैं, तो आप के बजाय के रूप में करना चाहिए पिछले पोस्टर का उल्लेख किया गया है और परिणामों के लिए सर्वर मतदान के साथ एसिंक प्रोसेसिंग का उपयोग करें, यह एक और अधिक निश्चित अग्नि समाधान होगा। उदाहरण के लिए: एक छवि प्रोसेसर सर्वर पक्ष से एक थंबनेल स्क्रिप्ट: उपयोगकर्ता एक छवि अपलोड करता है जो सर्वर को 200 और एक "जॉब आईडी" देता है। ग्राहक (जावास्क्रिप्ट ^^) नौकरी की स्थिति/परिणाम का अनुरोध करने के लिए जॉबआईडी का उपयोग कर सकते हैं।
- यदि आपका लक्ष्य ब्राउज़र और सर्वर के बीच रीयलटाइम कनेक्शन की तरह कुछ है (1 रास्ता कनेक्शन, ब्राउज़र द्वारा अनुरोध किए जाने के बाद कोई और जानकारी नए अनुरोधों (AJAX ^^) के बिना भेजा जा सकता है), यह है लंबे मतदान/रिवर्स AJAX कहा जाता है और http पर वास्तविक समय संचार के लिए इस्तेमाल किया जा सकता है। समानांतर में 2 लंबे सर्वेक्षण किए गए अनुरोधों का उपयोग करके कई तकनीकें हैं ताकि उनमें से एक बार टाइमआउट सक्रिय हो जाए और दूसरा पुन: कनेक्ट करने का प्रयास कर सके।
ग्रेट प्रतिक्रिया, धन्यवाद –
मुझे पता चला कि सामान्य (HTML पृष्ठ) अनुरोध के मामले में, ब्राउज़र सीसीए के बाद टाइमआउट पर चलाते हैं। 30 सेकेंड यह महत्वपूर्ण है, क्योंकि अन्य प्रतिभागी शायद इसका अनुसरण करते हैं: प्रॉक्सी, राउटर (राउटर इस गेम में खेलते हैं? मुझे यकीन नहीं है)। मैं 4 सेकंड लंबी सर्वर-साइड देरी (यदि क्लाइंट को भेजने के लिए कुछ भी नहीं है) का उपयोग कर रहा हूं, और मेरा AJAX क्लाइंट तुरंत एक और HTTP अनुरोध करता है (मैं स्थानीय नेटवर्क पर हूं, इंटरनेट इंटरनेट नहीं है)। 4 सेकंड लंबे समय तक पर्याप्त मतदान के साथ सर्वर और नेटवर्क को अधिभारित नहीं करने के लिए काफी लंबा है, और मामले के लिए पर्याप्त छोटा है, जब किसी भी तरह से एक सर्वेक्षण पंक्ति से बाहर निकलता है जिसे ग्राहक पहचान और संभाल नहीं सकता है।
इसके अलावा, धूमकेतु (लंबे HTTP अनुरोध) के साथ अन्य समस्याएं हैं: एक साथ HTTP अनुरोध की संख्या पर ब्राउज़र की सीमा, क्लाइंट-साइड इवेंट्स को संभालना (तुरंत सर्वर पर भेजा जाना चाहिए), सर्वर/नेटवर्क डाउन डिटेक्शन और रिकवरी , बहु उपयोगकर्ता हैंडलिंग इत्यादि
- 1. AJAX अनुरोध ब्राउज़र सीमा
- 2. jQuery AJAX HTTPS अनुरोध नहीं करेगा
- 3. AJAX अनुरोध के बाद jQuery दस्तावेज़ तैयार
- 4. WebBrowser AJAX सामग्री की प्रतीक्षा
- 5. AJAX अनुरोध
- 6. jQuery अजाक्स: * async * अनुरोध सफलता तक जारी होने तक प्रतीक्षा कैसे करें?
- 7. AJAX अनुरोध
- 8. बंद स्क्रॉल AJAX अनुरोध के बाद शीर्ष पर
- 9. grails नियंत्रक में AJAX अनुरोध या ब्राउज़र अनुरोध की पहचान
- 10. jQuery: जब तक प्रतीक्षा करें सभी ajax कॉल तो
- 11. रद्द किए गए AJAX अनुरोध के बाद नेविगेशन
- 12. AJAX अनुरोध
- 13. AJAX अनुरोध
- 14. ब्राउज़र में HTTP अनुरोध कब खुले हैं या नहीं?
- 15. AJAX अनुरोध के बाद URL को कैसे बदलें?
- 16. जावास्क्रिप्ट ajax अनुरोध ढांचे
- 17. Jquery AJAX अनुरोध,
- 18. AJAX अनुरोध
- 19. jQuery: विफल AJAX अनुरोध
- 20. AJAX अनुरोध
- 21. AJAX अनुरोध
- 22. AJAX अनुरोध
- 23. AJAX() अनुरोध
- 24. AJAX अनुरोध
- 25. jQuery AJAX अनुरोध
- 26. JSF ajax अनुरोध
- 27. बनाम पोस्ट करें AJAX अनुरोध: कब और कैसे उपयोग करें?
- 28. सत्यापन त्रुटि के बाद बाद में AJAX अनुरोध UI घटक से मान प्राप्त करते हैं, बीन्स
- 29. ब्राउज़र निरस्त करने के बाद भी AJAX कॉल के लिए इंतजार कर रहा है (jQuery)
- 30. कैसे ajax अनुरोध
सुनिश्चित करें कि आप क्या प्रयोग कर रहे हैं, लेकिन हाँ आप टाइमआउट विस्तार कर सकते हैं नहीं। अनंत तक, मुझे नहीं पता। हालांकि मैं असीमित समय के खिलाफ सिफारिश करेंगे। यदि आपको आवश्यकता है, तो आप इसे हमेशा 90 सेकंड या थोड़ी देर तक कुछ सेट कर सकते हैं। यदि यह 30 सेकंड से अधिक समय लेता है, तो शायद कुछ करने का एक बेहतर, तेज़ तरीका है। – Matt
+1 - मैं इसके बारे में भी उत्सुक हूं। मुझे संदेह है कि आपको क्लाइंट टाइमिंग के बारे में चिंता करने की ज़रूरत है। इस पर आपका कोई नियंत्रण नहीं है। एक Google खोज ने इसे चालू कर दिया। यह मूल रूप से कहता है कि या तो सर्वर या ब्राउज़र आप पर समय निकाल सकता है। इसलिए मैं कुछ चुनूंगा जो सभी ब्राउज़रों के लिए डिफ़ॉल्ट नहीं होगा। http://support.microsoft.com/kb/813827 – mrtsherman
जब डिबगिंग मैं एक बार अजाक्स कॉल के बाद दोपहर के भोजन के लिए बाहर गया और ब्राउजर पर वापस आया तो अभी भी उत्तर का इंतजार कर रहा था। मैंने अपने डीबगर पर क्लिक किया और ब्राउज़र ने प्रतिक्रिया उठाई। मुझे लगता है कि यह मायने रखता है, क्योंकि मैं –