2009-09-11 14 views
5

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

मेरे पास एक स्क्रिप्ट है जो Firefox 3.0 में काम करती है। यह इंगित किया गया था कि स्क्रिप्ट Firefox 3.5 में काम नहीं करती है, इसलिए मैं इसे काम करने की कोशिश कर रहा हूं। दरअसल, स्क्रिप्ट ने अपेक्षित नतीजे नहीं दिए, इसलिए मैंने Firebug का नवीनतम संस्करण स्थापित किया, console को सक्षम किया और पृष्ठ को रीफ्रेश किया।

और वाह, यह काम किया।

कोई त्रुटि नहीं, चेतावनी कुछ भी नहीं।

तो मैं कंसोल अक्षम है, और फिर इसे अब और काम नहीं किया ...

यहाँ क्या हो रहा है? फ़ायरबग कंसोल किसी भी तरह फ़ायरफ़ॉक्स में कुछ बदलता है जो मेरी स्क्रिप्ट को काम करता है? अगला क्या पर कोई सलाह? (फायरबग स्थापित करने के लिए भविष्य के आगंतुकों से पूछने के अलावा ...)

उत्तर

10

क्या यह आपके जावास्क्रिप्ट में console.log() पर किसी कॉल पर टिप्पणी करने के लिए भूलना आसान हो सकता है?

यदि आपके पास फांसी संदर्भ हैं, और उपयोगकर्ता के पास फ़ायरबग स्थापित नहीं है, तो आपको एक रनटाइम त्रुटि मिल जाएगी जो स्क्रिप्ट के निष्पादन को रोक देगा। console.log के लिए अपने कोड में

+2

+1 यह सबसे संभावित अपराधी की तरह लगता है – patros

+0

हाँ यह भी बहुत अधिक लगता है। मैंने इसके बारे में एक सेकंड के लिए सोचा लेकिन माना कि आपके पास पहले फ़ायरबग स्थापित नहीं हुआ था, लेकिन यह जवाब पढ़ने के बाद ही एहसास हुआ कि अगर आपने कोड कॉपी और पेस्ट किया है तो कुछ अच्छा डिबगिंग वहां बैठा था। +1 – NateDSaint

+0

मुझे पता नहीं है, मुझे डेवलपर को संदेह का लाभ देना होगा कि वह ऐसी स्पष्ट त्रुटि को पहचानने में सक्षम होगा। – Zoidberg

7

ऐसा लगता है कि आपके पास थ्रेडिंग समस्या है, और फ़ायरबग विश्लेषण कर रहा है और संभवतः धागे में से एक को धीमा कर रहा है ताकि इसमें पूरा होने का समय हो अगले चरण को हल करने से पहले।

क्या आप संभवतः AJAX का उपयोग कर रहे हैं, और उस प्रतिक्रिया पर कुछ इंतजार कर रहा है? या संभवतः आप किसी ऑब्जेक्ट के लोड पर या उसके बाद कुछ कर रहे हैं जो डोम में किसी और चीज के आधार पर है?

अद्यतन: इस पर ठोकर खाने वालों के लिए, जावास्क्रिप्ट में "धागे" वास्तव में केवल अमूर्तता (वेब ​​श्रमिक, आदि) में मौजूद हैं। मैं इस शब्द का गलत इस्तेमाल कर रहा था। मैं वास्तव में एक असीमित कार्रवाई के बारे में सोच रहा था जो किसी और के सामने लौटने से पहले लौटा था।

+0

यह समझ में होगा। – Zoidberg

+0

है कि अगर सही है मैं नहीं जानता, लेकिन अच्छा विश्लेषण – marcgg

+0

मैं ajax हाँ उपयोग कर रहा हूँ के लिए +1, मुझे लगता है लेकिन जस्टिन console.log (के बारे में सही) है :) – Ropstah

6

चेक(), console.debug()। कॉलिंग window.console तरीकों एक त्रुटि फेंकता है (उम्मीद के रूप में) है, तो कंसोल अपरिभाषित है वस्तुओं।

ज्यादातर मामलों में आप आसानी से हटा सकते हैं या टिप्पणी है कि लाइनों कर सकते हैं।

+0

धन्यवाद! आप पहले जवाब दे रहे थे, इसलिए क्रेडिट तुम्हारा है :) – Ropstah

+0

@ropstah यह महत्वपूर्ण नहीं है ... लेकिन अपने गणित की जांच करें। यह आखिरी जवाब है, पहले नहीं। –

+0

ओह, आप सही हैं, मैं वास्तव में "8 मिनट पहले" Mushex और "9 मिनट पहले" जस्टिन पढ़ने के दौरान प्रभाव में था ... :) – Ropstah

0

मैंने फायरबग के लिए एक साधारण रैपर लिखा (मैं केवल डीबग का उपयोग करता हूं लेकिन यह आपको अन्य तरीकों को डुप्लिकेट करने की आवश्यकता है) जो केवल कंसोल है जब लिखता है इसलिए मैं फायरबग का उपयोग कर सकता हूं, जाने की आवश्यकता नहीं है मेरी डिबग बयान टिप्पणी और इसके बिना लोगों के लिए साइटों को नहीं तोड़ता है।

यदि आप इस कोड का उपयोग तो console.debug के बजाय fbconsole.debug का उपयोग आप इस समस्या है कभी नहीं होगा: के बाद से फ़ायरफ़ॉक्स की जावास्क्रिप्ट इंजन तेजी से हर रिलीज के साथ पाने के लिए लगता है

function fbconsole() { 
    this.debug = function (val) { 
     if(typeof(console) !== 'undefined' && console != null) { 
      console.debug(val); 
      } 
     } 
    } 
var fbconsole = new fbconsole(); 
+0

अच्छा, लेकिन मुझे लगता है कि यह बेहतर है कि आप कुछ भी लाइव होने से पहले डीबग स्टेटमेंट को हटा दें :) – Ropstah