क्रोम और फ़ायरफ़ॉक्स के लिए कंसोल में Ctrl + C दबाए जाने के बराबर क्या है? विभिन्न एल्गोरिदम लागू करने के दौरान मैं अक्सर जावास्क्रिप्ट में कुछ छोटी गाड़ी (while
) लूप लिखता हूं, जो बाहर नहीं निकलता है, ब्राउज़र को फ्रीज करता है। रीलोडिंग काम नहीं करती है, टैब बंद करने के लिए छोटे एक्स पर क्लिक करने से कुछ भी नहीं होता है, और थोड़ी देर में (शाब्दिक रूप से) मैं स्मृति से बाहर हूं, सिस्टम स्वैपिंग कर रहा है, और मैं कॉफी ब्रेक के लिए जा रहा हूं।आप ब्राउज़र में जेएस को कैसे बाधित करते हैं?
उत्तर
की स्क्रिप्ट टैब में अपनी js
कोड में ब्रेक अंक निर्धारित करने के लिए जावास्क्रिप्ट के लिए एक Ctrl + C
के रूप में ऐसी कोई चीज नहीं है की अनुमति देता है। जावास्क्रिप्ट निष्पादित करने वाले ब्राउज़र आमतौर पर स्वयं की सुरक्षात्मक होते हैं। यदि कोई जावास्क्रिप्ट लटकता है, तो वे एक संवाद फेंक देंगे कि क्या उपयोगकर्ता जावास्क्रिप्ट को रोकना चाहता है।
टाइमआउट अवधि आमतौर पर ब्राउज़र की सेटिंग्स में पाई जा सकती है। आप यहां फ़ायरफ़ॉक्स के लिए यह कैसे कर सकते हैं: http://www.trixya.net/index.php/internet/how-to-set-javascript-timeout-in-firefox
जब वे मेरा सिस्टम पहले ही स्वैप कर रहे हैं, तो वे उस संवाद को बहुत देर से फेंक देते हैं। – skrat
क्रोम में, आप Shift+ESC
(या टाइटल बार पर राइट-क्लिक करें और क्रोम टास्क मैनेजर खोलें) हिट कर सकते हैं और लटका टैब से जुड़े प्रक्रिया को मार सकते हैं। यह उन मामलों में काम करेगा जहां टैब बंद करना नहीं होगा।
चेतावनी है, कभी-कभी क्रोम कई प्रक्रियाओं को एक प्रक्रिया में व्यवस्थित करेगा, और यह प्रक्रिया से जुड़े सभी टैब को मार देगा।
var maxIterations = 100000;
while (foo) {
if (!maxIterations--) throw new Error('Max iterations hit, aborting.');
// do stuff
}
में राइट क्लिक करें:
एक और दृष्टिकोण आप while
ब्राउज़र फांसी छोरों से बचने के लिए ले जा सकते हैं (आप परीक्षण के बाद इसे बाहर ले जा सकते हैं) इस तरह कोड लिखने के लिए है क्रोम के कार्य प्रबंधक और एक अजीब ईस्टर अंडे प्रकट करने के लिए संदर्भ मेनू के नीचे आइटम का चयन करें।
'जबकि (foo && --maxIterations) {...}' – vol7ron
@ vol7ron मैंने अधिकतम कोड को शेष कोड से अलग लाइनों पर रखा है ताकि अगर –
आवश्यक हो तो इसे आसानी से हटाया जा सकता है, मैं समझता हूं कि आप क्या हैं करते हुए। मेरे लिए, सब कुछ एक साथ बंद करने और रखने के लिए आसान होगा। ब्लॉक अलग होने पर अलग होने पर - आपको वास्तव में समय-समय पर पढ़ना होगा, केवल पूर्व-स्थितियों और शर्तों को देखने के बजाय – vol7ron
क्या थोड़ा अंतर्दृष्टि मैं काम कर रहा है, मैं कैसे आगे बढ़ना होगा की अपनी तरीकों में है से है:
- केवल बटन क्लिक तरह की एक घटना पर स्क्रिप्ट को निष्पादित। यह रोका जा सके चालू स्क्रिप्ट
onload
- क्रोम आप डेवलपर उपकरण
ब्राउज़र में जावास्क्रिप्ट कोड चलाने के लिए कोई वास्तविक "इंटरप्टर" नहीं है। ईसीएमएस्क्रिप्ट को तथाकथित "यूआई थ्रेड" में निष्पादित किया जाता है, जिसका अर्थ है कि सभी प्रतिपादन सामग्री उसी कतार में होती है जो ईसीएमएस्क्रिप्ट कोड निष्पादित हो जाती है।
इसका मतलब है कि ईसीएमएस्क्रिप्ट में एक अनंत लूप स्वचालित रूप से पूरे ब्राउज़र इंटरैक्शन को लटकता है।
इससे बचने का एकमात्र तरीका स्पष्ट, साफ कोड लिखना है। यदि ऐसा होता है, तो अधिकांश ब्राउज़रों का एहसास होता है कि यूआई थ्रेड बहुत लंबे समय तक व्यस्त है और उपयोगकर्ता से पूछता है कि क्या वह चल रहे जावास्क्रिप्ट प्रक्रियाओं को रद्द करना चाहता है। यदि आप इसके लिए इंतजार नहीं करना चाहते हैं, तो आपकी एकमात्र पसंद संपूर्ण ब्राउज़र/टैब प्रक्रिया को मारना है।
हालांकि, अगर आप जानते हैं कि अपनी स्क्रिप्ट के कुछ हिस्से संभवतः अनंत लूप उत्पन्न करता है, आप या तो breakpoints
मैन्युअल developer tools
किसी प्रकार में सेट कर सकते हैं या आप अपनी स्क्रिप्ट में सीधे debugger;
कीवर्ड सम्मिलित कर सकते हैं।इससे जावास्क्रिप्ट दुभाषिया वर्तमान लाइन पर रुकने का कारण बनता है और आपके पास अगले कोड का विश्लेषण करने का मौका होता है (उदाहरण के लिए स्थितियां) और खराब दिखने पर निष्पादन को रद्द कर दें।
मैं कुछ भी नहीं कर सकता, '(1) {} 'लूप का प्रयास करें, और एक साफ निकास प्राप्त करने का प्रयास करें (बंद टैब, बंद विंडो, आदि) – skrat
- 1. ब्राउज़र में जावास्क्रिप्ट को आप कैसे संपादित करते हैं?
- 2. आप नॉकऑट जेएस के साथ गतिशील बाध्यकारी कैसे करते हैं?
- 3. आप अपने ब्राउज़र में एचटीएमएल/जेएस डीबग करने के लिए किस उपकरण का उपयोग करते हैं?
- 4. आप ब्राउज़र इतिहास का उपयोग कैसे करते हैं?
- 5. , आप आइटम को कैसे क्रमबद्ध करते हैं?
- 6. आप XamlParseException को कैसे डिबग करते हैं?
- 7. आप कैसे FB.Canvas.scrollTo को एनिमेट करते हैं?
- 8. आप wx.Panel को रीफ्रेश कैसे करते हैं?
- 9. आप JVM को कैसे क्रैश करते हैं?
- 10. आप प्रोटोटाइप कैसे करते हैं?
- 11. रूबी में आप पॉलिमॉर्फिज्म कैसे करते हैं?
- 12. आप कैसे प्रतिक्रिया करते हैं?
- 13. आप postgresql में mysqldump कैसे करते हैं?
- 14. आप एक्सकोड में टीडीडी कैसे करते हैं?
- 15. आप ग्रहण वेब ब्राउज़र कैसे खोलते हैं?
- 16. इंटरैक्टिव एरलांग सत्र में वे चर को कैसे बाधित करते हैं?
- 17. आप जावा एप्लेट्स को कैसे डिबग करते हैं?
- 18. क्लोजर में आप एक सूची को यादृच्छिक कैसे करते हैं?
- 19. आप MySQL में संग्रहीत प्रक्रिया को कैसे संपादित करते हैं?
- 20. आप लाइनफ़ीड्स को मीडियाविकि में कैसे पेस्ट करते हैं?
- 21. ईक्लीप्स में सत्यापन त्रुटियों को आप कैसे साफ़ करते हैं?
- 22. जावास्क्रिप्ट में आप स्मृति को कैसे साफ़ करते हैं?
- 23. आप यूनिट परीक्षणों को संकुल में कैसे व्यवस्थित करते हैं?
- 24. आप स्थैतिक वर्ग में ToString को ओवरराइड कैसे करते हैं?
- 25. इंटरफ़ेसबिल्डर में कस्टम UIViews को आप कैसे प्रदर्शित करते हैं?
- 26. आप knockout.js को देखने में कैसे वृद्धि करते हैं?
- 27. अभिव्यक्ति मिश्रण में XAML को आप कैसे प्रारूपित करते हैं?
- 28. सी # परियोजनाओं में आप app.config को कैसे एम्बेड करते हैं?
- 29. आप एनएसएसटींग को घटक भागों में कैसे विभाजित करते हैं?
- 30. आप गिट में एकाधिक फ़ाइलों को कैसे स्थानांतरित करते हैं?
ctrl + alt + del – user544262772
मुझे यह मानना है कि यह स्थिति को ठीक करने के लिए ब्राउज़र डेवलपर्स के लिए "प्रेरणा" के रूप में अधिक था। – skrat
स्पष्ट रूप से मौजूदा जेएस निष्पादक बेवकूफ हैं कि वे कुछ इतना आसान नहीं कर सकते हैं। – Pacerier