for (i=0;i<channelName.length;i++) {
if (channelName[i]=="channel"||channelName[i]=="user") {
checkUserDuplicate(channelName[i]);
}
}
このループは、すべてのブラウザで「メモリ不足」クラッシュを引き起こしています。なぜ誰かが見ることができますか?これは、IF文でクラッシュし、何とか無限ループを引き起こしているようです。JSループがループしてブラウザをクラッシュさせていますか?
コードが何をしているのか不思議であれば、定義されていない長さの配列でキーワード "channel"と "user"を見つけ、その文字列を次の位置に取得します。
私がここに座って2時間困惑しているので、何か助けがあれば幸いです。
EDIT:CHANNELNAMEはhttp://www.youtube.com/user/username
のようなURLが、これは関数である:
function checkUserDuplicate(channelName) {
var idarray=[];match=0;$('.channels').each(function(){idarray.push(this.id)});
for (i=0;i<idarray.length;i++) {
var current=channelName.toLowerCase();compare=idarray[i].toLowerCase();
if (current==compare) {callError(channelName+" already exists in this collection");match=1;}
} if (match==0) {checkExists(channelName);}
}
それはめちゃくちゃだ:)
'checkUserDuplicate'のコードは何だろうか?私は 'i'はグローバル変数であり、その関数でその価値を追求していると思いますか?正確には、変数を宣言してください。 – Teemu
現在表示されているものではありません。どのような値とどのくらいの大きさは 'channelName'ですか? 'checkUserDuplicate'は何をするのですか(*私はそれがループしていると仮定しており、おそらく無限ループを引き起こしています*)? –
@ Teemu申し訳ありませんが、それはグローバル変数ではありません。コードは非常に長いです。 – LewisHarris