Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在执行ajax请求时我的页面会锁定?_Javascript_Jquery_Background Process - Fatal编程技术网

Javascript 为什么在执行ajax请求时我的页面会锁定?

Javascript 为什么在执行ajax请求时我的页面会锁定?,javascript,jquery,background-process,Javascript,Jquery,Background Process,其思想是生成一堆缩略图,而不会导致服务器超时。因此,我使用jQuery使用ajax一个接一个地完成这项工作 我有一个JavaScript循环,通过一组文件名运行,并要求服务器为每个文件生成一个图像。在这种情况下,大约需要300多个文件 我运行我的文件并使用一个单独的函数来执行ajax请求。顶部循环希望显示当前正在处理的文件。但是当顶部循环运行时,页面显示为挂起。为什么?(如您所见,我试图在调用ajax之前等待一秒钟,但这并没有奏效。) 函数mkImgAll(){ $.ajaxSetup({asy

其思想是生成一堆缩略图,而不会导致服务器超时。因此,我使用jQuery使用ajax一个接一个地完成这项工作

我有一个JavaScript循环,通过一组文件名运行,并要求服务器为每个文件生成一个图像。在这种情况下,大约需要300多个文件

我运行我的文件并使用一个单独的函数来执行ajax请求。顶部循环希望显示当前正在处理的文件。但是当顶部循环运行时,页面显示为挂起。为什么?(如您所见,我试图在调用ajax之前等待一秒钟,但这并没有奏效。)

函数mkImgAll(){
$.ajaxSetup({async:true});
var files=$('.files');
debugClear();
对于(i=0;i您的请求不是异步的。您应该将async设置为true,因为jquery 1.7!不推荐使用async:false!

我会尝试使用setTimeout调用调试…

很长时间,但您可以尝试以下方法:

if (debug) {
    var dummy = $("#debugMessage").append("<xmp>"+say+"</xmp>").get(0).offsetLeft;
}
if(调试){
var dummy=$(“#调试消息”).append(“+say+”).get(0).offsetLeft;
}

这应该会在浏览器锁定到sleep()之前强制刷新页面。对于该btw,最好使用
setTimeout()
而不是
sleep()
,除非您的循环确实必须在那里暂停。

实际上从1.8开始就不推荐了;尽管我不同意这个决定=Xstill,因为jquery这么说,它将挂起页面;)
    function debugSay(say) {
        if(debug) {
            $("#debugMessage").append("<xmp>"+say+"</xmp>");
        }
    }
$.ajax({
....
async: false,
if (debug) {
    var dummy = $("#debugMessage").append("<xmp>"+say+"</xmp>").get(0).offsetLeft;
}