दिलचस्प पोस्ट
मैं वेबपेज में जावास्क्रिप्ट कोड कैसे छिपा सकता हूं? वेक्टर में कई तत्व ढूँढना मैं कैसे पता लगा सकता हूं कि एक आइफ्रेम लोड हो रहा है या नहीं? क्या कंसट्रक्टर फ़ंक्शन को वादा करने के लिए बुरा अभ्यास है? JSON से यूनिकोड की जगह स्ट्रिंग ऑब्जेक्ट कैसे प्राप्त करें? कैसे numpy में एक सरणी से लगातार तत्वों के समूह को खोजने के लिए? यदि कोई सूचना दिखाई दे रही है, तो उपयोगकर्ता "स्क्रीन ओवरले का पता लगाया" संदेश को अनुमति देने का प्रयास कर रहा है UINavigationController प्रोग्रामिंग में UINavigationBar का कस्टम उप-वर्ग सेट करें UITableView dequeueReusableCellWithIdentifier थ्योरी सी, सी ++, जावा, और सी में प्री एंड पोस्ट इंचार्ज ऑपरेटर व्यवहार विशिष्ट कॉलम बनाएं केवल कीप्रेस ईवेंट में डेटाग्रिड दृश्य में संख्यात्मक मान स्वीकार करें एंड्रॉइड – त्वरण नीचे (स्मैश) कैसे एक फोन कॉल प्रोग्राम के लिए? ऑटोमैपर बनाम वैल्यूइन्स्सिस्टर जीसीसी त्रुटि: जीसीसी: एफ़ 'cc1' करने की कोशिश में त्रुटि: execvp: ऐसा कोई फ़ाइल या निर्देशिका नहीं है

XMLHttpRequest में readyState == 4 के बराबर ऑनलोड है?

मैं एक्सहोर वापसी घटना के बारे में भ्रमित हूं, जैसा कि मैं बता सकता हूं, onreadystatechange -> readyState == 4 और ओलोड के बीच इतना अलग नहीं हैं, क्या यह सच है?

var xhr = new XMLHttpRequest(); xhr.open("Get", url, false); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { /* do some thing*/ } }; xhr.send(null); 

या

 xhr.onload = function() { /* do something */ } 

वेब के समाधान से एकत्रित समाधान "XMLHttpRequest में readyState == 4 के बराबर ऑनलोड है?"

यह एक ही बात होनी चाहिए onload को XMLHttpRequest 2 में जोड़ा गया था, जबकि onreadystatechange मूल कल्पना के बाद से आसपास है

यह लगभग हमेशा सच है हालांकि, एक महत्वपूर्ण अंतर यह है कि मामलों में जहां ऑनरर हेन्डलर आमतौर पर ट्रिगर होता है (आमतौर पर एक नेटवर्क कनेक्टिविटी इश्यू) में ऑन-डेस्टेस्टेक इवेंट हैन्डलर तैयार होकर तैयार हो जाता है == 4। इस स्थिति में इसे 0 की स्थिति मिलती है। मैंने यह सत्यापित किया है कि नवीनतम क्रोम, फ़ायरफ़ॉक्स और आईई पर ऐसा होता है।

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

नहीं, वे एक समान नहीं हैं। यदि आप किसी नेटवर्क त्रुटि का सामना करते हैं या ऑपरेशन को रद्द करते हैं, तो onload को कॉल नहीं किया जाएगा। असल में, readyState === 4 के सबसे निकटतम घटना loadend होगा प्रवाह इस तरह दिखता है:

  onreadystatechange readyState === 4 ⇓ onload / onerror / onabort ⇓ onloadend