当ajax等待回复时,切换到不同的页面

时间:2016-02-04 10:01:47

标签: javascript jquery ajax

我有一个页面女巫做了几个ajax调用,它通常需要大约一分钟才能完成。不幸的是,这些调用尚未回复,我的浏览器在转到另一个页面之前等待它们完成。我想做的是让ajax调用有效,但当用户决定转到其他页面让他立即离开时停止。我尝试使用abort但似乎没有用。

代码:

    var requests = []

    function getworkLetterList(){
        requests.push(getworkLetterList = $.get("ajax.home.php?get=workLetterList", function(data, status){
            if (status != "success") {
                alert("Fout bij inladen workLetterList");
            }else{
                $("#workLetterList-row").replaceWith(data);
                $("#workLetterList-loader").css("display","none")
            }
        }));
    }
    function getreviewArray(){
        requests.push($.get("ajax.home.php?get=reviewArray", function(data, status){
            if (status != "success") {
                alert("Fout bij inladen reviewArray");
            }else{
                $("#reviewArray-row").replaceWith(data);
                $("#reviewArray-loader").css("display","none")
            }
        }));
    }
    function geteindcijfer(){
        requests.push($.get("ajax.home.php?get=eindcijfer", function(data, status){
            if (status != "success") {
                alert("Fout bij inladen eindcijfer");
            }else{
                $("#eindcijfer-row").html(data);
                $("#eindcijfer-loader").css("display","none")
            }
        }));
    }
    function abortRequests(){
        console.log(requests);
        for (i = 0; i < requests.length; i++) { 
            requests[i].abort();
        }
    }

    $( window ).unload(function() {
        abortRequests()
    });
    $(window).on('beforeunload ',function() {
        abortRequests()
    });


    getworkLetterList();
    getreviewArray();
    geteindcijfer();

1 个答案:

答案 0 :(得分:0)

通常发送ajax请求不会导致此类延迟。但是,它可能是客户端问题。一个可能的问题可能是客户端处理服务器响应,或者服务器需要太多时间来处理所有这些请求。您是否在[YOUR_BROWSER_OF_CHOICE]的开发人员工具中查看了响应时间?