2011-11-23 11 views
63

क्रोम और इसका जावास्क्रिप्ट डीबगर का उपयोग करते समय, हर बार जब मैं अपना पेज/स्क्रिप्ट लोड करता हूं, तो मेरे ब्रेकपॉइंट्स खो जाते हैं और मुझे पॉप-अप में स्क्रिप्ट फ़ाइल मिलनी है, मेरे ब्रेक पॉइंट के लिए कोड की लाइन ढूंढें, पर क्लिक करें इसे जोड़ें, आदिक्रोम जावास्क्रिप्ट डीबगिंग - पेज रीफ्रेश या कोड के माध्यम से ब्रेक के बीच ब्रेक पॉइंट्स को कैसे सहेजना है?

क्या इन ब्रेकपॉइंट्स को सहेजने का कोई तरीका है, इसलिए पेज रीफ्रेश करने के बाद भी यह टूट जाता है (अन्य डिबगर्स मैंने इसका उपयोग किया है)?

वैकल्पिक रूप से, क्या मेरे जावास्क्रिप्ट कोड में एक साफ तरीका है, मैं क्रोम को ट्रेसिंग शुरू करने के लिए कुछ कह सकता हूं (लाइन पर रुकने के लिए)?

+2

क्रोम डेवलपर टूल्स को ताज़ा करने के बीच जेएस ब्रेकपॉइंट्स रखना चाहिए। क्या आप अपने जेएस को शामिल करने के लिए '

0

आप डीबगर ब्रेक बनाने के लिए अपने स्रोत में debugger; कथन का उपयोग कर सकते हैं।

0

क्रोम डेवलपर टूल्स को आपके द्वारा अपेक्षित तरीके से व्यवहार करना चाहिए, लेकिन आप निष्पादन को रोकने के लिए अपने (विकास!) कोड में debugger; कथन डाल सकते हैं।

34

अपने ब्रेकपॉइंट्स सेट करें, नेटवर्क टैब पर स्विच करें और का चयन करें नेविगेशन टॉगल बटन पर लॉग ऑन करें। जब आप रीफ्रेश करते हैं तो ब्रेकपॉइंट्स वहां होना चाहिए।

या जावास्क्रिप्ट रास्ता भी

debugger; 
+0

और यह टॉगल बटन कहां है? मैं इसे नहीं देख सकता ... – Alvaro

18

उपयोग करने के लिए, आप an attached query parameter to the URL with the current Epoch time साथ ग्राहक के लिए सर्वर से अपने JavaScript फ़ाइल (रों) भेजूँ है? इसका उपयोग जावास्क्रिप्ट फ़ाइल (कै) की कैशिंग को रोकने के लिए किया जाता है।

जब ऐसा होता है, ऐसा लगता है कि क्रोम डेवलपर टूल्स रीफ्रेश के बाद फ़ाइल को अलग-अलग होने के लिए व्याख्या करता है, जो ब्रेकपॉइंट्स को सही ढंग से हटा देगा।

मेरे लिए, क्वेरी पैरामीटर को हटाने से सीडीटी रीफ्रेश के बाद ब्रेकपॉइंट्स को बनाए रखता है।

+3

धन्यवाद! ExtJS 4 में फ़ाइलों को कैश होने से रखने के लिए "_dc" पैरामीटर शामिल है और हर बार ब्रेकपॉइंट साफ़ कर देगा। '' Ext.Loader.setConfig ({ अक्षम कैशिंग: झूठी, ई nabled: true }); '' ऐप कॉन्फ़िगरेशन को अक्षम करता है। उस संकेत के लिए –

+0

@BrianTopping Thx। कैशिंग को रोकने के लिए गतिशील क्वेरी पैराम को जोड़ने के रूप में उन्होंने इतनी बेवकूफ चीज क्यों की। यह ब्राउज़र (देव-उपकरण)/सर्वर है जो इसे नियंत्रित करना चाहिए ... – Juri

+0

@sjogren_me, आपने क्रोम देव उपकरण में क्वेरी पैरामीटर को कैसे हटाया? – gwg

8

शायद यह उन स्क्रिप्ट्स के लिए हो रहा है जिन्हें आप अन्य स्क्रिप्ट से गतिशील रूप से लोड या मूल्यांकन कर रहे हैं? मैं अपने लिए कह सकता हूं कि जब तक मैंने SourceURL प्रॉपर्टी की खोज नहीं की, तब तक इस परिदृश्य ने मुझे परेशान किया। स्क्रिप्ट की अंतिम पंक्ति पर निम्नलिखित विशेष रूप से फ़ॉर्मेट टिप्पणी रखने डिबग करने के लिए आप चाहते हैं होगा Chrome में 'लंगर' यह तो यह इसके लिए संदर्भ का एक फ्रेम है:

// # sourceURL = filename.js

आपके मैन्युअल रूप से स्थित ब्रेकपॉइंट्स अब पेज लोड के बीच बने रहेंगे!सम्मेलन वास्तव में स्रोतमैप विनिर्देश से उत्पन्न हुआ, लेकिन क्रोम कम से कम इसे एक स्टैंडअलोन तकनीक के रूप में सम्मानित करता है। यहां एक reference है।

1

ExtJs 6.x इस्तेमाल करने वाले लोगों के लिए:
disableCaching के बजाय Ext.Loader में आप एक "कैश" या "disableCacheBuster" पृष्ठ का URL क्वेरी पैरामीटर जोड़ सकते हैं। यह फ़ाइल से "_dc" पैरामीटर को हटा देगा और ब्रेकपॉइंट को बनाए रखने के लिए क्रोम डीबगर सक्षम करेगा।

अपने एप्लिकेशन में bootstrap.js देखें (कॉन्फ़िगर पैरामीटर अक्षम कैशिंग)।

+0

loader.cache के लिए app.json में मान सेट करके अन्य औपचारिक तरीका प्रतीत होता है: सत्य, https://www.sencha.com/forum/showthread.php?303932- सेटिंग- a-breakpoint-in- क्रोम- गायब हो जाता है-ऑन-ताज़ा-है-वहाँ एक वैकल्पिक हल – saurabh

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