【问题标题】:Chrome is only queuing 2 ajax requests at a timeChrome 一次只能排队 2 个 ajax 请求
【发布时间】:2013-11-06 21:23:21
【问题描述】:

我有一个点击事件,它将一个项目异步添加到用户的购物车服务器端和客户端。这在所有浏览器中都可以正常工作,直到用户在 ajax 请求完成之前在 Chrome 中单击两次以上。在 IE 和 Firefox 的网络控制台中,我可以看到请求被正确排队,但 Chrome 一次只排队两个,而忽略了其他所有内容。即使使用成功事件也无济于事,因为即使 Chrome 忽略它也会触发。

$(div).on('click',function () {
    $.ajax('script.php')
    .success(function() {
        dosomething();
    });
});

如果您在快速分离中触发此事件 5 次,则 script.php 将被调用两次,而 dosomething() 将被调用 5 次。

有没有办法让 Chrome 处理两个以上的请求,或者至少调用某些函数的次数与实际 ajax 加载的次数一样多?

【问题讨论】:

  • 我可以理解它只同时发送两个,但如果它实际上只发送两次,它不应该给你成功 5 次。我怀疑完全在发生其他事情,可能是某种竞争条件。

标签: javascript jquery ajax google-chrome


【解决方案1】:

http://api.jquery.com/jQuery.ajax/

根据 API 文档,它应该异步进行。尝试设置

async: true

应该是默认,但也许你的脚本在某处改变了它? 也许你需要检查控制台是否有错误???

【讨论】:

  • 查看错误:上面 $.ajax 链接上的 prop 文档。您应该能够检查任何错误。应该开火了。如果不是,则有错误。任何出现问题的地方都有错误。由你来抓住它。
【解决方案2】:

把代码改成

$(div).on('click',function () {
    $.ajax({url: 'script.php',cache: false})
    .success(function() {
        dosomething();
    });
});

似乎奏效了。请随时告诉我为什么 Chrome 会将 ajax 请求缓存 1 秒。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多