2008-11-17 29 views
8

मैं ऐसी साइट विकसित कर रहा हूं जो जावास्क्रिप्ट (jQuery) का व्यापक उपयोग करता है। मैं नियमित रूप से आईई 'इस स्क्रिप्ट को चलाने बंद करो?' जब मैं ब्राउज़र बंद करने का प्रयास करता हूं तो त्रुटि संवाद।"इस स्क्रिप्ट को चलाने से रोकें?" त्रुटि

मुझे लगता है कि समस्या होती है क्योंकि साइट एक एकल पृष्ठ है जो AJAX का उपयोग करता है, इसलिए निष्पादित आदेशों की आईई की गिनती को रीसेट करने के लिए कोई पोस्टबैक नहीं है।

क्लाइंट-साइड रजिस्ट्री हैकिंग एक विकल्प नहीं है।

क्या कोई इस त्रुटि को हल करने का तरीका जानता है?

अद्यतन: पृष्ठ में एक संख्या (~ 10) अंतराल टाइमर है जो लगातार 30 या 60 सेकंड अंतराल पर मतदान करता है।

+0

आप जवाब सवाल के लिए पोस्ट को देखने के लिए चाहते हो सकता है "([इस पृष्ठ पर एक स्क्रिप्ट यानी धीमे चल खड़ी कर रहा है] http://stackoverflow.com/questions/212550/a-script-on-this- पेज-है के कारण-यानी करने वाली-धीरे चल) "। –

उत्तर

3

क्या आप मौके से एक विंडो का उपयोग करते हैं। हैंडलर हैंडलर? यदि आप करते हैं, तो आप जांच सकते हैं कि आपके पास अनंत अनंत लूप नहीं है।

अपने जावास्क्रिप्ट के तल पर जाँच करने के लिए, कार्य करें:

window.onunload = null; 

और परीक्षण फिर से।

+0

यह मेरे मामले में समस्या नहीं है। मैं बस एक पेज में एक लंबी लिपि चला रहा था। – liammclennan

+0

@liammclennan तो, आपके पास एक स्क्रिप्ट थी जो हमेशा (या लगभग हमेशा) चल रही थी, लेकिन केवल टैब को बंद करने पर एक अलर्ट दिखाई देता था? –

1

आपके पास बस आपके कोड में कुछ लंबी चल रही स्क्रिप्ट/अनंत लूप है। अधिक जानकारी अधिक सटीक उत्तर मिल सकती है।

यदि आपका पृष्ठ बहुत से अंतराल का उपयोग कर रहा है तो आप पृष्ठ से दूर जाने से पहले उन्हें रद्द करना चाहते हैं। सभी अंतराल को साफ़ करने के लिए window.onunload का उपयोग करें।

4

मुझे इस मुद्दे का भी सामना करना पड़ा है और निरंतर डीओएम निष्पादन को विभाजित करके इस मुद्दे को पार कर गया है। इस दृष्टिकोण के लिए, मैंने setTimeout फ़ंक्शन का उपयोग किया। इस मुद्दे को हल करना पूरी तरह से निर्भर करता है कि आप निरंतर निष्पादन को कैसे विभाजित कर रहे हैं।

+0

सेटटाइमआउट जाने का रास्ता है! आईई 8 में और 5,000 से अधिक वस्तुओं के बड़े AJAX डेटासेट के साथ परीक्षण किया गया। –

1

मैं बस blogged about this और जो मुझे लगता है वह एक सुंदर स्टाइलिश समाधान है। तो देखो। जैसा कि मेरे समाधान के ऊपर वर्णित है, अब भाग में लंबे समय तक चलने वाले संचालन को तोड़ देता है लेकिन मैं ऐसा करने के लिए एक अच्छी उपयोगिता कक्षा प्रदान करता हूं।

+0

आपका समाधान दिलचस्प है। मैंने कोशिश नहीं की है लेकिन अगर यह काम करता है तो यह बेहद उपयोगी है। – liammclennan

0

भी $ (document) .ready() और $ में लंबे आपरेशन विभाजित करने पर विचार कर सकते हैं (विंडो) .load()

0

मैं बस jQuery चयनकर्ताओं कि बेहद सामान्य थे साथ एक समस्या थी: उदा $("*")

2

समस्या: त्रुटि "इस स्क्रिप्ट दौड़ना बंद?"

समाधान: आप इस एक संगतता मुद्दे या एक बग कह सकते हैं के रूप में ही सामान मोज़िला में किसी भी त्रुटि के बिना चलता है, लेकिन यह IE 6.7 या में चलता है 8 त्रुटि संदेश के साथ "इस स्क्रिप्ट को रोकना बंद करें"। माइक्रोसॉफ्ट ने आईई में इस मुद्दे को ठीक करने के लिए एक पैच प्रदान किया है। तो, कृपया नीचे दिए लिंक पर जाएं और "माइक्रोसॉफ्ट फिक्स यह" और एक ही स्थापित करने और ब्राउज़र को पुनः आरंभ डाउनलोड करने और आप कभी नहीं देखेंगे त्रुटि "इस स्क्रिप्ट चल रहा है बंद करो": http://support.microsoft.com/kb/175500#FixItForMeAlways

+5

यह वास्तव में एक समाधान नहीं है। उपयोगकर्ताओं को अपने ब्राउज़र में एक निश्चित वेबसाइट देखने के लिए पैच स्थापित करने की आवश्यकता नहीं है। इस समस्या को ठीक करने के लिए कुछ 'सेटटाइमआउट' कॉल की आवश्यकता है। उपयोगकर्ताओं को वेब डेवलपर्स के कोड को ठीक करने के लिए पैच स्थापित नहीं करना चाहिए (वेब ​​डेवलपर्स को कोई अपराध नहीं)। –

0
व्यक्ति जो $ उल्लेख की तरह

("*"), कस्टम घटनाओं के लिए बाध्य चयनकर्ता के रूप में $ (इस) का उपयोग न करने का प्रयास करें, इसने सिस्टम की लोड समय को नष्ट करने के लिए मेरी हाल की लिपि को जन्म दिया।

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