在更改页面之前,页面会等到ajax请求完成

时间:2018-01-26 11:14:29

标签: javascript jquery ajax post request

我正在用PHP创建一个网站,该网站利用不同的网站来获取用户数据。我在一个单独的页面中设置了一个jQuery函数,它接受了类get_user_full_name的所有span元素。

当页面加载时,此函数将使用jQuery发送$ .post请求,获取用户的名称并将其插入到跨度中。

HTML范围:

<body onload="loadExternalData()">
<span class="get_user_full_name" data-id="xy12345">Loading username...</span>
</body>

jQuery函数:

function loadExternalData(){

if($(".get_user_full_name").length != 0){
    $(".get_user_full_name").each(function(){
        $.post(path+"loadPHPRequests.php", {student_id: $(this).data("id")}, makeHandler($(this).data("id"), "full_name"));
    });
}    
}

当用户想要转到其他页面时,问题就出现了。如果仍在进行请求,并且用户单击链接,则页面将不会更改,直到所有$ .post请求都已完成。我需要的是点击一个链接来停止所有当前的$ .post请求并重定向页面。 我知道一种方法是将每个帖子请求保存为变量,然后在单击链接时单独取消每个帖子。但是,我在外部脚本文件中创建了此函数,然后将其包含在每个页面中:

<script src="/scripts/js.js"></script>

因此,我无法看到如何以这种方式跟踪变量。有没有办法取消所有请求?

非常感谢您的帮助!

0 个答案:

没有答案