this JsFiddle पर एक नज़र डालें:मेरे कोड में ऐसी त्रुटियों की आवृत्ति को कैसे कम किया जाए?
var requests = [
$.ajax("http://search.twitter.com/search.json", { data: { q: 'ashishnjain' }, dataType: 'jsonp' })
.done(function() {console.log("request");}),
$.ajax("http://search.twitter.com/search.json", { data: { q: 'ashishnjain' }, dataType: 'jsonp' })
.done(function() {console.log("request");})
];
$.when(requests).done(console.log("alldone"));
अपेक्षित आउटपुट है: request request alldone
, लेकिन वास्तव में यह प्रिंट alldone request request
।
वास्तव में इस कोड में दो बग हैं (यदि आप उस तरह की चीज़ का आनंद लेते हैं तो अभ्यास के रूप में छोड़ दिया जाता है), लेकिन आखिर में मुझे लगता है कि ऐसा इसलिए होता है क्योंकि जावास्क्रिप्ट और jQuery दोनों बेहद कमजोर होते हैं जब तर्क दिए जाते हैं जो कुछ भी समझ में नहीं आता है। इस माहौल में, "सही" चीज "कुछ या कुछ भी नहीं करती है, बस एक त्रुटि फेंक न दें!"।
इस कोड गुजरता JsLint, और सिर्फ मुझे (वास्तविक कोड निश्चित रूप से और अधिक जटिल था परिमाण के कुछ आदेश) डिबग करने के लिए कुछ घंटों खर्च किया है के रूप में देखकर, मैं सोच रहा हूँ और क्या मैं करने के लिए क्या कर सकते हैं ऐसी अनचाहे उदारता पर समय बर्बाद करना कम करें। यह एक अलग उदाहरण नहीं है; ऐसा लगता है कि बार-बार ऐसा होता है। कोई सुझाव?
तर्क आपके अनुसार कोई समझ नहीं आता है। इंजन के अनुसार, मुझे यकीन है कि वे करते हैं। आप अपनी "बग" से कौन सी त्रुटियों की अपेक्षा करेंगे? कुछ "अवैध तर्क" की तरह? – bzlm
@bzlm मुझे उस पर चर्चा करना अच्छा लगेगा, लेकिन मुझे डर है कि यह सवाल ट्रैक को खींच देगा। मैं जावास्क्रिप्ट को बदल नहीं सकता, और मैं jQuery (ज्यादा) नहीं बदल सकता, इसलिए मैं सोच रहा हूं कि इस तरह की चीजों से कैसे बचें। –
मुझे तुम्हारा दर्द महसूस होता है। यह अविश्वसनीय है कि प्रोग्रामिंग की यह त्रुटि-प्रवण शैली कितनी लोकप्रिय है। मुश्किल से एक दिन मेरे बिना अपने जेएस कोड के माध्यम से घूमने के लिए गुजरता है और सिंटैक्स के उप-समूह के हर विवरण पर नजर रखता है, ताकि त्रुटियों को ढूंढ सकें जो एक उचित कंपाइलर मिलेगा और एक सेकंड के अंश में ध्वजांकित करेगा। मुझे नहीं पता कि अन्य लोग इस निराशाजनक अनुभव का आनंद कैसे लेते हैं, लेकिन फिर भी वे ऐसा करते हैं, वे इस तरह से बहुत उत्पादक नहीं हो सकते हैं। – Timwi