मैं अपने जावास्क्रिप्ट उपयोगिता जोर कार्य को एक चेतावनी() जोड़ने पर विचार कर रहा हूं।जेएस: समझें कि कैसे चेतावनी() ब्राउज़र ईवेंट लूप को प्रभावित करता है
हम एक अजाक्स-भारी एप्लिकेशन हैं, और जिस तरह से हमारा ढांचा (एक्स्ट) तैयार अंतराल == 4 की प्रतीक्षा करने के बजाय सेट इंटरवल के साथ AJAX प्रतिक्रिया के लिए मतदान करके AJAX लागू करता है, हमारे सभी AJAX कॉलबैक को निष्पादित करने का कारण बनता है सेट अंतराल स्टैक संदर्भ - और इसमें से एक अपवाद/जोर से बहने से आम तौर पर चुपचाप विफल हो जाता है।
निम्न-स्तरीय अलर्ट() ब्राउज़र ईवेंट लूप को कैसे प्रभावित करता है? परिभाषा के अनुसार संदेशबॉक्स को Win32 इवेंट लूप को पंप करने की अनुमति देनी चाहिए (एमबॉक्स बटन का जवाब देने के लिए)। क्या इसका मतलब है कि अन्य ब्राउज़र कार्यक्रम, भविष्य के सेट जैसे हमारे ढांचे द्वारा उत्पन्न अंतराल, घटनाओं का आकार बदलना आदि आग लगने जा रहे हैं? क्या इससे मेरे लिए परेशानी हो सकती है?
आईआईआरसी: आप जिस अंतर के बारे में बात कर रहे हैं, उसे देखने के लिए आप एफएफ 2 और एफएफ 3.5 का उपयोग कर सकते हैं।
alert('1');
setTimeout(function(){alert('2');}, 10);
alert('3');
एफएफ 3.5 1-3-2 दिखाता है। एफएफ 2 [1] 1-2 & 3 दिखाता है (2 और 3 एक दूसरे के शीर्ष पर एक साथ शीर्ष पर)। हम IE8 में 1-2 & 3 को दोबारा सक्रिय कर सकते हैं, एक चेतावनी के बजाय, एक चेतावनी के बजाय, जिसने दिन में वापस हमला किया था, और मैं यह सुनिश्चित करना चाहता हूं कि हम उस रास्ते को फिर से नीचे न जाएं ।
क्या कोई मुझे विशिष्ट निम्न स्तर के संसाधनों के बारे में बता सकता है जो इस व्यवहार को समझाते हैं, अपेक्षित व्यवहार क्या है, और निम्न स्तर पर वास्तव में क्या चल रहा है, जिसमें व्यवहार एफएफ संस्करणों में क्यों बदल गया है?
[1] आप इसे Spoon.net पर दोहराना कर सकते हैं जिसे मैं अभी काम नहीं कर सकता। मैंने इसे एफएफ 2.0.0.20 के साथ एक वीएम में दबा दिया।
उत्कृष्ट प्रश्न। मेरे अनुभव में, 'अलर्ट' का कार्यान्वयन ब्राउज़र में नाटकीय रूप से भिन्न होता है। आम तौर पर, मैं 'अलर्ट' से बचूंगा जहां ये चीजें मायने रखती हैं और कस्टम (यानी jQuery UI-style) संवाद का उपयोग करती हैं। –
@ ओलिवर - हाँ, हमने वास्तव में एक डोम-आधारित पॉपअप का उपयोग करना चुना, लेकिन मैं अब भी अलर्ट आंतरिक को समझना चाहता हूं। –
* "परिभाषा के अनुसार संदेशबॉक्स को Win32 इवेंट लूप को पंप करने की अनुमति देनी चाहिए" * - कुछ ऑपरेटिंग सिस्टम - मैक ओएस एक्स, उदाहरण के लिए - नेस्टेड इवेंट लूप का उपयोग करें। एक चेतावनी एक [मोडल इवेंट लूप] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/WinPanel/Concepts/UsingModalWindows.html) चला सकती है जो मुख्य ईवेंट लूप को अवरुद्ध करती है। ऐसा लगता है कि कुछ वेब ब्राउज़र संवाद बॉक्स के लिए कुछ समान करते हैं। – s4y