【问题标题】:Long Ajax Request in Chrome Shows WaitingChrome 中的长 Ajax 请求显示等待
【发布时间】:2011-03-29 08:48:42
【问题描述】:

在 FF 和 IE 中,我向我的服务器发出 Ajax 请求(Jquery Post)。请求调用一个 sql 存储过程,该过程在返回数据之前查询 30 秒(或在数据可用时立即查询)。然后将数据返回到我的 javascript 并根据它执行操作。

一切都很好,直到我使用 Chrome,它会获取更新,但会在浏览器中显示加载指针和加载页面图标。

每次返回请求时都会进行此调用,因此在用户看来,chrome 似乎一直在等待页面加载。

有没有办法解决这个问题?

问候。

【问题讨论】:

  • 我在想你的async 属性可能设置为false
  • 帖子转到启用异步的 aspx 页面,然后调用 asyc 存储过程。
  • 不,我的意思是 jQuery AJAX 调用本身?是async : true吗?如果您的 AJAX 调用不是,那么您的 ASPX 和/或 SQL SP 是否异步无关紧要,因为无论如何您的浏览器都将不可撤销地“等待”。
  • Jquery Post 默认是异步的。
  • 是的,我也知道。只要确保async 没有被意外关闭或其他原因。因此,评论,而不是通常的答案。

标签: jquery google-chrome asynchronous ajax-polling


【解决方案1】:

我最近遇到了同样的问题。幸运的是,我发现了另一个非常有用的 SO question。这是我为解决问题所做的一个示例:

jQuery(document).ready(function() {
  setTimeout(function () {
   $.getJSON("veryLongRequest", function(json) {
   alert("JSON Result: " + json[0].id);});
  }, 500); // You may need to adjust this to a longer delay.
});

注意:我使用的是简写 jquery 方法“getJSON”,它是数据类型设置为“json”的 ajax 调用的包装器。但是,此解决方案适用于所有 ajax 请求。

参考:

Stop the browser "throbber of doom" while loading comet/server push iframe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    相关资源
    最近更新 更多