アイデアは、サーバーのタイムアウトを取得せずにサムネイルのヒープを生成することです。そこで、jQueryを使用してajaxで1つずつ実行します。
一連のファイル名を実行し、サーバーに各ファイルの画像を生成するように要求するJavaScriptループがあります。この場合、それは約300以上のファイルの問題です。
ファイルを実行し、別の関数を使用してajaxリクエストを実行します。一番上のループは、現在処理中のファイルを表示したいと考えています。ただし、トップループの実行中は、ページがハングしているように見えます。なんで?(ご覧のとおり、ajaxを呼び出す前に1秒待ってみましたが、うまくいきませんでした。)
function mkImgAll() {
$.ajaxSetup({ async: true });
var files = $('.files');
debugClear();
for(i=0;i < files.length;i++) {
var id=files[i].id;
var file=files[i].value;
debugSay(id+' '+file); // <- This does not display
sleep(1000); // until the
mkImg(id, file); // loop has finished.
}
$.ajaxSetup({ async: ajaxAsyncDefault });
}
function mkImg(id, file){
$('#ajaxWaiting').show(1);
$.ajax({
type : 'POST',
url : 'includes/ajax.php',
dataType : 'json',
async: false,
data: {
'proc' : 'makeOneThumb',
'id' : id,
'file' : file
},
ところで、debugSay関数はこれを行います:
function debugSay(say) {
if(debug) {
$("#debugMessage").append("<xmp>"+say+"</xmp>");
}
}