2010-04-12 4 views
7

पर स्वचालित रूप से जावास्क्रिप्ट त्रुटियों की रिपोर्ट करना अधिकांश उत्पादन वातावरण के रूप में हमने हमारे वेब एप्लिकेशन में कोई त्रुटि होने पर हमें अधिसूचना भेजने के लिए कुछ सेट अप किया है। समस्या यह है कि यह केवल सर्वर की तरफ त्रुटियों को कवर करता है।डेवलपर

समुदाय से मेरा प्रश्न है: क्लाइंट साइड त्रुटियों के बारे में आप क्या कर रहे हैं, खासकर जावास्क्रिप्ट में?

और धीमी प्रसंस्करण और अन्य चीजों के बारे में क्या है जो क्लाइंट मशीन के कारण हो सकते हैं?

उत्तर

8

आप ग्राहक के पक्ष window.onerror घटना

हैंडलर के अंदर के साथ JavaScript त्रुटियों अपने सर्वर साइड त्रुटि खान में काम करनेवाला के लिए एक Ajax अनुरोध बनाने के लिए और त्रुटि लॉग ऑन संभाल कर सकते हैं।

http://www.javascriptkit.com/javatutors/error.shtml

Hovewer window.onerror सभी ब्राउज़रों में समर्थित नहीं है, jQuery अपने स्वयं के ईवेंट हैंडलर के साथ खाई को भरने कर सकते हैं: window.onerror और jQuery(window).error का एक संयोजन

+2

बस सुनिश्चित करें कि आतंक हैंडलिंग कोड बुलेटप्रूफ है ;-) – spender

7

वहाँ एक महान नहीं है पर्याप्त होना चाहिए सौदा आप ग्राहक अंत में जावास्क्रिप्ट त्रुटियों के बारे में कर सकते हैं। आप window.onerror जाल कर सकते हैं और AJAX को एक रिपोर्ट वापस उपयोग कर सकते हैं, लेकिन:

(ए) यह वेबकिट या ओपेरा में समर्थित नहीं है। सभी त्रुटियों को पकड़ने के लिए आपको प्रत्येक डायरेक्ट-निष्पादन, ईवेंट और टाइमआउट एंट्री पॉइंट को try { ... } में लपेटना होगा, जो बहुत गन्दा है और आपको onerror हैंडलर से भी कम जानकारी देता है।

(बी) आपको त्रुटि रिपोर्टों के साथ घूमने की संभावना है, आप जानकारी की कमी के कारण संभवतः कम डिबगिंग के साथ कुछ भी नहीं कर सकते हैं। आप उस एप्लिकेशन पर इसे दूर करने में सक्षम हो सकते हैं जो केवल उन ग्राहकों द्वारा एक्सेस किया जाता है जिन्हें आप जानते हैं, लेकिन सार्वजनिक-पहुंच साइट पर, कई त्रुटियां नकली होंगी। कारकों के कारण सामग्री:

  • स्क्रिप्ट या AJAX विफल होने वाली साइटों या कनेक्शन विफल होने वाली साइटों से कनेक्शन;

  • अप्रत्याशित सुरक्षा सेटिंग्स (ब्राउज़र में कई इंटरफेस को मनमाने ढंग से अवरुद्ध करने के विकल्प हैं);

  • टूटा हुआ ब्राउज़र ऐड-ऑन, ग्रीसमोन्की-जैसी स्क्रिप्ट, प्रॉक्सी फ़िल्टर करना और आपके कोड के साथ गड़बड़ाना "इंटरनेट सुरक्षा" टूल;

  • असमर्थित एजेंट जो मोबाइल ब्राउज़र (विशेष रूप से अपमानजनक आईमोबाइल) की तरह अजीब व्यवहार करते हैं, और यदि उनके पास पहुंच है, तो स्वचालित ब्राउज़र बॉट;

  • यदि आपके पास कोई विज्ञापन है, तो विज्ञापन जैसी तृतीय-पक्ष सामग्री के कारण कई त्रुटियां होती हैं।

फिर, एक सीमित उपयोग आवेदन जहां सीधे जो समस्या आ रही है किसी भी उपयोगकर्ता से संपर्क कर सकते के लिए, यह काम का हो सकता है, लेकिन आम जनता द्वारा प्रयोग किया जाता एक साइट के लिए यह एक गैर स्टार्टर है।

जावास्क्रिप्ट विफल होने पर आपका एप्लिकेशन अभी भी काम करता है यह सुनिश्चित करने के लिए 'प्रगतिशील वृद्धि' का उपयोग करना सबसे अच्छा है।

+1

सेवा जांच की गुणवत्ता करने का पूरा बिंदु यह पता लगाने के लिए है कि कितनी बार आम समस्या होती है और फिर उन पर ध्यान केंद्रित करें। अगर हमारे पास यह भी नहीं है, तो आप सिर्फ अंधेरे में शूटिंग कर रहे हैं। मुझे सर्वर की तरफ से 1-टन का एक टन मिलता है, जिसमें यादृच्छिक डेडलॉक्स भी शामिल हैं, लोग अनुरोध के बीच में अपना कनेक्शन बंद कर रहे हैं और अन्य अनूठी चीजों के टन। – Cine