2014-07-14 10 views
36

बहिष्कृत किया गया है यह संदेश अचानक फ़ायरफ़ॉक्स कंसोल में क्यों दिखने लगा?मुख्य धागे पर सिंक्रोनस XMLHttpRequest को

मैं JQuery 1.7.1 का उपयोग कर रहा हूं।

मैं अपने ऐप में क्या कर सकता हूं जिससे इस संदेश को दिखना शुरू हो गया है?

+2

आप शायद एक तुल्यकालिक ajax अनुरोध कर रहे हैं? – Bergi

उत्तर

14

आपके पास कोड सिंक्रोनस एक्सएचआर/अजाक्स प्रदर्शन कर रहा है, यानी अजाक्स अनुरोध है कि जब तक वे पूरा नहीं हो जाते हैं।

jQuery का उपयोग करते समय, आप की सेटिंग ऑब्जेक्ट में async: false निर्दिष्ट करके ऐसा करेंगे।

समाधान अपने कोड के किसी भी सिंक्रोनस अनुरोध कर refactor करने के लिए है, यानी jQuery.ajax({async: false}) और सहायक कार्यों के सभी उदाहरणों को मारने, साथ ही xhr.open(..., false) के रूप में, आप उपयोग कर सकते हैं तीसरे पक्ष के पुस्तकालयों में कोड शामिल है। साथ ही, चूंकि jQuery 1.7.1 वेब के मानकों के बजाय पुराना है, मुझे यकीन नहीं है कि क्या jQuery संस्करण अभी भी कुछ मामलों में आंतरिक सिंक अनुरोध करता है, तो आपको इसके लिए भी जांच करनी होगी और यदि jQuery को अपग्रेड करना होगा।

39

दस्तावेज़ में एक स्क्रिप्ट टैग जोड़ने के लिए jQuery का उपयोग करने से यह एसिंक के साथ स्क्रिप्ट को लोड कर देगा: झूठी और इस चेतावनी को ट्रिगर करें।

में के रूप में:

var script = $("<script></script>"); 
script.attr("src", player.basepath + "whatever.js"); 
$(document.body).append(script); 
+4

दिलचस्प खोज। – Plippie

+1

मैंने हाल ही में knockout.js html बाध्यकारी का उपयोग करते समय इस चेतावनी में ठोकर खाई। यदि jQuery उपलब्ध है, तो एचटीएमएल बाध्यकारी के लिए डोम मैनिपुलेशन प्रबंधित करने के लिए नॉकआउट कवर के तहत इसका उपयोग करता है। यदि HTML स्ट्रिंग में कोई स्क्रिप्ट टैग प्रस्तुत किया गया है, तो यह इस चेतावनी को ट्रिगर करेगा। – kiprainey

+1

क्या यह बहिष्करण चेतावनी है कि jQuery के भविष्य के संस्करणों में, 'async: false' विशेषता को अनदेखा कर दिया जाएगा और अनुरोध वैसे भी अतुल्यकालिक जारी किए जाएंगे? – RTF

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