जब आप अनंत लूप या रिकर्सिव कॉल में होते हैं, मूल रूप से ब्राउज़र किसी भी चीज़ (या तो क्रोम या एफएफ पर) का जवाब देना बंद कर देता है। आप लॉग नहीं देख सकते हैं, डीबगर में नहीं जा सकते हैं, यहां तक कि आप कंसोल को भी नहीं खोल सकते हैं। ब्राउज़र बस बस जम जाता है। यह बहुत परेशान है। ऐसा लगता है कि मैं कुछ भी नहीं कर सकता लेकिन बैठे हुए मेरे सिर को खरोंच कर रहा हूं ... कोई भी इसे हल करने के तरीके पर प्रकाश डाल सकता है?जब जावास्क्रिप्ट में अनंत लूप और रिकर्सिव कॉल में जाता है तो जावास्क्रिप्ट को डीबग कैसे करें?
उत्तर
एक और चाल जो आप कोशिश कर सकते हैं, क्रोम में वेब डेवलपर टूल खोलने के लिए है और ब्राउज़र को स्पष्ट रूप से लटकते समय को रोकने का प्रयास करें। फिर इसे उस लाइन पर तोड़ना चाहिए जहां यह वर्तमान में निष्पादित हो रहा है। कुछ कदम उठाने के साथ आपको इसके नीचे जाना चाहिए।
मान लिया जाये कि आप जानते हैं (या संदिग्ध) समारोह जहां अनंत लूप आप इस तरह कोड जोड़ सकते हैं होता है:
var calls = 0;
function iSuspectToBeLoopingInfititely() {
calls += 1;
if (calls > 100) { debugger; }
}
यह क्रोम में JavaScript डीबगर बंद हो जाएगा एक बार विधि 100 बार बुलाया गया है। नोट: यदि आपके पास वास्तव में डेवलपर टूल विंडो खुलती है तो क्रोम केवल debugger;
कॉल के लिए तोड़ देगा।
धन्यवाद, @Tigraine। यह काम! – lkahtz
अच्छा जवाब। कभी भी 'रोकें' बटन का उपयोग करने के बारे में सोचा नहीं था (उच्च सीपीयू लोड के कारण बग को पुन: उत्पन्न करना मुश्किल था) –
मैं इस जवाब पर वापस आ रहा हूं। प्रति सेकंड निष्पादन के # पर मनमानी घड़ियों को सेट करना और उल्लंघन करने वाले किसी भी फ़ंक्शन पर तोड़ना ब्राउज़र विकास उपकरण के लिए एक उत्कृष्ट जोड़ होगा। – Barney
मुझे क्रोम में समस्याएं थीं, मैं ब्राउज़र विंडो 'डीबगर में रोका गया' ब्राउज़र में देखता था लेकिन यह नहीं देख सका कि क्रोम को लूप में कब से भ्रमित कर दिया गया था ... फ़ायरफ़ॉक्स में, यह भी इसे लेने में मान्यता प्राप्त है लंबे समय तक और फिर 30 सेकंड के बाद एक पॉपअप आता है, फ़ाइल और सामान्य रेखा # यह जमे हुए कहता है जिस पर आगे डीबग करने और उस क्षेत्र के ब्रेकपॉइंट्स को सेट करने में मदद मिलती है।
आप निम्न कोड का उपयोग कर एक अनंत लूप को रोक सकते हैं।
debugger;
- 1. अनंत लूप जब सादे जावास्क्रिप्ट वस्तु को
- 2. जावास्क्रिप्ट विरासत अनंत लूप
- 3. जावास्क्रिप्ट में, जब कोई चर का मान बदल जाता है तो ईवेंट को ट्रिगर कैसे करें?
- 4. जावास्क्रिप्ट Quicksort में अनंत रिकर्सन?
- 5. jQuery/जावास्क्रिप्ट: मेरा रिकर्सिव सेटटाइमआउट फ़ंक्शन तेज़ हो जाता है जब टैब निष्क्रिय हो जाता है
- 6. जावास्क्रिप्ट नियमित अभिव्यक्ति - निष्पादन अनंत लूप
- 7. आईई में जावास्क्रिप्ट डीबग कैसे करें?
- 8. अनंत लूप जब initWithCoder ओवरराइडिंग
- 9. रिलीज मोड में अनंत लूप
- 10. PHP में अनंत लूप के खिलाफ डीबग और सुरक्षा कैसे करें?
- 11. जावास्क्रिप्ट: कुंजीपटल घटनाओं को डीबग कैसे करें
- 12. जावास्क्रिप्ट में रिकर्सिव प्रोटोटाइप विरासत?
- 13. जावास्क्रिप्ट में लूप टाइमर
- 14. obfuscated जावास्क्रिप्ट डीबग कैसे करें?
- 15. स्कैला में रिकर्सिव लूप कैसे करें
- 16. जावास्क्रिप्ट में 'कॉल' कैसे काम करता है?
- 17. अनंत लूप
- 18. जावास्क्रिप्ट ऑब्जेक्ट शाब्दिक विधि: रिकर्सिव कॉल
- 19. बैश स्क्रिप्ट में अनंत लूप को कैसे बंद करें?
- 20. जावास्क्रिप्ट में फ़ंक्शन के निष्पादन समय को कैसे सीमित करें?
- 21. UITextView अपने प्रतिनिधि के रूप में है अनंत अनंत लूप
- 22. जावास्क्रिप्ट फ़ंक्शन में जावास्क्रिप्ट को इंजेक्ट करें
- 23. अनंत लूप जब एक जावा सर्वलेट
- 24. हैकेल में अनंत लूप? (नौसिखिया)
- 25. Jquery - अनंत लूप
- 26. जावास्क्रिप्ट में अधिकतम कॉल स्टैक कैसे बढ़ाएं?
- 27. शीर्ष फ्रेम में जावास्क्रिप्ट फ़ंक्शन को कैसे कॉल करें?
- 28. जावास्क्रिप्ट: लूप
- 29. जब मैं पैरामीटर को परिभाषित नहीं करता हूं तो मुझे अनंत लूप क्यों मिल रहा है?
- 30. ब्रेकपॉइंट्स सेट करें और डीबग eval'd जावास्क्रिप्ट
से पहले पाश शुरू कर दिया है डीबगर में एक ब्रेकपाइंट सेट करें? – PhonicUK
@PonicUK काम नहीं करता ..... – lkahtz