Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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_Php_Jquery_Ajax - Fatal编程技术网

Javascript 当通过Ajax发送请求时,如何停止挂起页面

Javascript 当通过Ajax发送请求时,如何停止挂起页面,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我面临一个严重的问题。。。每当我使用Ajax发送请求并获得响应时,我的浏览器就会挂起。。并显示无负载等 但当我从Ajax中检索到响应时,浏览器和页面再次开始工作 下面是我使用的代码 function ShowContestStatus(contestID) { $("#showContestDetails").html('<div class="loadercontest"><img src="assets/images/loading.gif">Loading

我面临一个严重的问题。。。每当我使用Ajax发送请求并获得响应时,我的浏览器就会挂起。。并显示无负载等

但当我从Ajax中检索到响应时,浏览器和页面再次开始工作

下面是我使用的代码

function ShowContestStatus(contestID)
{
    $("#showContestDetails").html('<div class="loadercontest"><img src="assets/images/loading.gif">Loading Contest....</div>');

    $("#RadioGroup1_0, #RadioGroup1_1, #RadioGroup1_2").prop('disabled', true);
    $.ajax({
            url:"process/processMyContest.php",
            type:'POST',
            cache:false,
            async:false,
            data : {act : 'showcontest', cid : contestID },
            success:function(result)
            { 
                $("#showContestDetails").html(result);
                $("#RadioGroup1_0, #RadioGroup1_1, #RadioGroup1_2").prop('disabled', false);
            }
        });
    }
功能显示竞赛状态(竞赛ID)
{
$(“#showCompetingDetails”).html('加载竞赛…);
$(“#射线组1_0,#射线组1_1,#射线组1_2”).prop('disabled',true);
$.ajax({
url:“process/processMyContest.php”,
类型:'POST',
cache:false,
async:false,
数据:{act:'showcatest',cid:competitid},
成功:功能(结果)
{ 
$(“#showCompetingDetails”).html(结果);
$(“#射线组1_0,#射线组1_1,#射线组1_2”).prop('disabled',false);
}
});
}
请帮我做这个。。。我想得到与其他网站相同的响应,当你发送一个请求时,他们使用的是ajax,页面既没有被挂起,也可以看到滚动等处理

所以请给我提一些好主意。。。。所以我可以摆脱它,并使我的ajax页面平滑,而不会影响和激怒其他人挂


提前感谢…:)

问题是
async:false
。。。由于ajax请求是同步的,因此脚本执行将等待请求完成后继续执行

由于浏览器使用单线程执行模式(一次执行脚本、重新绘制或等待用户事件,而不是同时执行所有事件),因此浏览器选项卡将停止侦听用户(因此看起来像是挂起了)

功能显示竞赛状态(竞赛ID){
$(“#showCompetingDetails”).html('加载竞赛…);
$(“#射线组1_0,#射线组1_1,#射线组1_2”).prop('disabled',true);
$.ajax({
url:“process/processMyContest.php”,
键入:“POST”,
cache:false,
//删除异步:false,
数据:{
表演:"表演比赛",,
cid:
},
成功:功能(结果){
$(“#showCompetingDetails”).html(结果);
$(“#射线组1_0,#射线组1_1,#射线组1_2”).prop('disabled',false);
}
});
}

默认情况下,所有请求都是异步发送的(即设置为 默认情况下为true)。如果需要同步请求,请将此选项设置为 错。跨域请求和数据类型:“jsonp”请求不会 支持同步操作请注意,同步请求可能会 暂时锁定浏览器,禁用请求时的任何操作 处于活动状态。从jQuery1.8开始,在jqXHR中使用async:false ($.Deferred)已弃用;您必须使用success/error/complete命令 回调选项,而不是jqXHR的相应方法 对象,例如jqXHR.done()或不推荐使用的jqXHR.success()


问题是
async:false
。。。由于ajax请求是同步的,因此脚本执行将等待请求完成后继续执行

由于浏览器使用单线程执行模式(一次执行脚本、重新绘制或等待用户事件,而不是同时执行所有事件),因此浏览器选项卡将停止侦听用户(因此看起来像是挂起了)

功能显示竞赛状态(竞赛ID){
$(“#showCompetingDetails”).html('加载竞赛…);
$(“#射线组1_0,#射线组1_1,#射线组1_2”).prop('disabled',true);
$.ajax({
url:“process/processMyContest.php”,
键入:“POST”,
cache:false,
//删除异步:false,
数据:{
表演:"表演比赛",,
cid:
},
成功:功能(结果){
$(“#showCompetingDetails”).html(结果);
$(“#射线组1_0,#射线组1_1,#射线组1_2”).prop('disabled',false);
}
});
}

默认情况下,所有请求都是异步发送的(即设置为 默认情况下为true)。如果需要同步请求,请将此选项设置为 错。跨域请求和数据类型:“jsonp”请求不会 支持同步操作请注意,同步请求可能会 暂时锁定浏览器,禁用请求时的任何操作 处于活动状态。从jQuery1.8开始,在jqXHR中使用async:false ($.Deferred)已弃用;您必须使用success/error/complete命令 回调选项,而不是jqXHR的相应方法 对象,例如jqXHR.done()或不推荐使用的jqXHR.success()


问题是
async:false
。。。由于ajax请求是同步的,因此脚本执行将等待请求完成后继续执行

由于浏览器使用单线程执行模式(一次执行脚本、重新绘制或等待用户事件,而不是同时执行所有事件),因此浏览器选项卡将停止侦听用户(因此看起来像是挂起了)

功能显示竞赛状态(竞赛ID){
$(“#showCompetingDetails”).html('加载竞赛…);
$(“#射线组1_0,#射线组1_1,#射线组1_2”).prop('disabled',true);
$.ajax({
url:“process/processMyContest.php”,
键入:“POST”,
cache:false,
//删除异步:false,
数据:{
表演:"表演比赛",,
cid:
},
成功:功能(结果){
$(“#showCompetingDetails”).html(结果);
$(“#射线组1_0,#射线组1_1,#射线组1_2”).prop('disabled',false);
}
});
}

默认情况下,所有请求都是异步发送的(即设置为 默认情况下为true)。如果需要同步请求,请将此选项设置为 错。跨域请求和数据类型:“jsonp”请求不会 支持同步操作<斯特罗
function ShowContestStatus(contestID) {
    $("#showContestDetails").html('<div class="loadercontest"><img src="assets/images/loading.gif">Loading Contest....</div>');

    $("#RadioGroup1_0, #RadioGroup1_1, #RadioGroup1_2").prop('disabled', true);
    $.ajax({
        url: "process/processMyContest.php",
        type: 'POST',
        cache: false,
        //remove async: false,
        data: {
            act: 'showcontest',
            cid: contestID
        },
        success: function (result) {
            $("#showContestDetails").html(result);
            $("#RadioGroup1_0, #RadioGroup1_1, #RadioGroup1_2").prop('disabled', false);
        }
    });
}