サーバーで処理する巨大なファイルがあります。ファイルをサーバーにアップロードしてから読み取り、配列を作成します。次に、その情報をサーバーに戻す必要があります。
function getXMLFile(file){ // Single call
$.ajax({
url: '....',
type: 'post',
dataType: 'json',
data: {filename: file},
success: function(json){
$.each(json, function( key, value ){ // iterates over 50 000 items.
tmp.push( value );
i++;
if(i > 10000){
setTimeout(function(){
insert(tmp);
tmp = [];
i = 0;
}, 1000);
}
});
}
});
}
そして、ここにロック機能があります:
function insert(data){ // called from getXMLFile() @data -> array of 10 000 code entries
$.ajax({
url: '....', // for now php function does nothing.
type: 'post',
dataType: 'json',
data: {codes: data},
async: true // !!!!
});
}
});
ご覧のとおり、ブラウザがロックされないように、「async: true」と setTimeout を使用しています。しかし、それはまだロックダウンしています.私は何か間違ったことをしましたか?