0

当用户离开页面时,我似乎无法取消此 ajax 请求。我不确定为什么。问题是客户端在用户离开页面之前等待请求完成。这是一个很大的请求,因为它需要大约 5 - 7 秒才能完成。因此,如果用户在请求进行时离开此页面,他们必须等待该时间才能加载下一页。这是我的代码。

window.loader = setInterval(load_queued_tasks, 15000);
    // function that should run every 15 seconds //
    function load_queued_tasks() {

        window.loader_ajax_request = $.ajax({
                    url: "coolpage.php",
                    type: 'GET',
                    success: function(data) {
            //lots of exciting actions
                      })     
            },
                    error: function() {
                       return false;
                    }
                }); //end ajax call
     }

    window.onbeforeunload = function (e) {
        //clear the interval timer
        window.clearInterval(window.loader);

        //abort any running ajax request
        window.loader_ajax_request.abort(); 
    };
4

0 回答 0