【问题标题】:Any way to prevent Safari and Chrome to show loading animation while XHR is active?有什么方法可以防止 Safari 和 Chrome 在 XHR 处于活动状态时显示加载动画?
【发布时间】:2009-08-06 03:55:39
【问题描述】:

我正在使用 XMLHTTPRequest 绑定从服务器接收异步事件。 XHR 打开一个服务器 URI,然后挂起,直到有事件发生或发生超时,在任何情况下,JS 都会立即在同一个 URI 上触发一个新的 XHR。

这很好用,但在 Safari 和 Chrome 中存在一个烦人的问题:当任何 XHR 处于活动状态时,两者都会继续显示“页面加载”动画。 Chrome 更进一步,并保持动画光标,有效地使应用程序无法使用。

有没有办法禁用这种行为?我相信这是出于安全原因故意这样做的,因此用户始终可以知道页面是否正在加载任何内容。不过,FF 和 IE 对 XHR 的处理方式不同。

【问题讨论】:

  • 你能发布你用来发出请求的代码吗?

标签: javascript webkit xmlhttprequest


【解决方案1】:

动画加载指示器表示页面加载正在进行中。这可能发生在一系列 XHR 中,直接从 window.onload() 事件处理程序启动。如果这些 XHR 调用将被包装到 setTimeout() 调用中,页面加载将通过绑定到异步事件监听来完成。

【讨论】:

  • 在 iPhone 上的 UIWebView 中,setTimeout 方法仅在延迟足够大(大约 100 毫秒)时才有效。否则我仍然得到微调器:(
【解决方案2】:

我认为这发生在对 URI 的同步请求中。许多人想尝试异步请求。我认为他们的待遇不同。

【讨论】:

  • 否定的。我们已经在使用异步 xhr。所以问题仍然存在。
  • 积极! (无法抗拒)那时不知道。使用 jQuery 和 Yahoo 等其他框架时不会发生这种情况。此外,如果页面挂起直到事件发生或发生超时,则同步功能不是异步的。我会仔细检查您的代码以确保它不会停止页面,因为这可能是导致加载信号发生的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 2011-09-10
  • 2021-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多