がthis JsFiddleを見てみましょう:request request alldone
が、実際にはこれはalldone request request
を出力します。私のコードでこのようなエラーの頻度を減らすには?
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"));
予想される出力です。
実際にはこのコードに2つのバグがあります(このようなことを楽しむ場合、練習として残しています)。しかし、最終的には、JavaScriptとjQueryがどちらも意味をなさない引数を与えられたときに非常に寛大であるためです。この環境では、「正しい」ことは、「何かをしても何もしないで、ただエラーを投げない」と思われます。
はJsLintに合格し、デバッグに数時間かかるだけです(実際のコードはもちろん数桁の複雑さが増しています)。他に何ができるのでしょうか?そのような不当な寛容さの無駄な時間を減らす。これは孤立した例ではありません。それは何度も何度も繰り返されるようです。助言がありますか?
あなたの意見では、議論は意味をなさない。エンジンによると、彼らは確信しています。あなたの "バグ"にはどんなエラーがありますか? 「無効な議論」のようなもの? – bzlm
@bzlm私はそれについて話したいと思うが、これはトラックから質問を引き出すことを恐れている。 JavaScriptを変更することはできません.jQueryを変更することはできません(多くの場合)。このようなことを避ける方法が不思議です。 –
私はあなたの痛みを感じます。このエラーの起こりやすいプログラミングスタイルがどれほど普及しているかは信じられません。私は自分のJSコードを辿ることなく1日を過ごすことはほとんどなく、適切なコンパイラが見つけ出して何分の1秒の間にフラグを立てるエラーを見つけるために、シンタックスの最も細かい部分を凝視します。私は他の人々がこのイライラした経験をどのように楽しんでいるのか分かりませんが、彼らはそれをやっています。 – Timwi