这个想法是在没有服务器超时的情况下生成一堆缩略图。所以我用 jQuery 用 ajax 来一一做。
我有一个通过一组文件名运行的 JavaScript 循环,并要求服务器为每个文件生成一个图像。在这种情况下,大约有 300 多个文件。
我浏览我的文件并使用单独的函数来执行 ajax 请求。顶部循环想要显示当前正在处理的文件。但是在顶部循环运行时,页面似乎挂起。为什么?(如您所见,我试图在调用 ajax 之前等待一秒钟,但这并没有成功。)
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>");
}
}