javascript - div 中的 Ajax 页面加载会停止浏览器,即使它是异步的?

标签 javascript jquery ajax

我正在尝试使用 $.ajax 在 div 中打开异步页面,但在单击链接后我仍然有大约 3 秒的延迟并且该时间页面被卡住了。至少发生在 chrome 和 safari 上。我哪里错了..?

$.ajaxSetup({
    async: true
});
$(document).ready(function() {
    $("#Button").click(function(evt) {
        $('#change').html('<p><img src="ajax-loader.gif" width="15" height="15" /></p>');
        $.ajax({
            url: "reg.php",
            cache: false
        }).done(function( html ) {
            $("#change").html(html);
        });
    });
});

最佳答案

不,像这样的异步 ajax 请求不会阻塞浏览器。问题出在别处,在您未显示的代码中。您显示的代码将正确执行异步请求。

推测我们看不到的可能存在的问题:

  1. 如果链接有一个 href,您并没有取消默认操作,所以它可能正在加载页面。您可以通过在点击处理程序中调用 evt.preventDefault() 或在其末尾执行 return false; 来阻止默认设置(这样做并停止传播).

  2. 如果您在其他地方有其他代码将 async: false 设置为默认值,也许您的 ajaxSetup 不会调用将其改回的值。

关于javascript - div 中的 Ajax 页面加载会停止浏览器,即使它是异步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17599464/

相关文章:

javascript - 如何为 HighChart 图设置最大 yAxis 范围?

javascript - 如何在javascript中使用同一对象中的公共(public)方法访问私有(private)变量?

JavaScript 关联数组变量

javascript - 使用 Javascript 不显示 Css 导航

javascript - Twitter typeahead.js 和一个用于多个匹配的 json 对象

javascript - 上传后提交前是否可以在 fancybox 中显示图像

javascript - 使用 $.post 调用 Web 服务 PHP 函数验证 javascript 页面中的目录

php - 使用 Codeigniter 上传 Ajax 文件

javascript - 对于 AJAX 响应,JSON 相对于 HTML 的优势?

javascript - Jquery - 清除或删除 URL 参数