【问题标题】:Synchronous AJAX, page loading gif同步 AJAX,页面加载 gif
【发布时间】:2015-04-27 14:41:27
【问题描述】:

我有多个同步 AJAX 请求,加载我的页面需要 3 秒。

我想要做的是显示一个加载页面(带有 gif),当页面加载时,就像 Ajax 请求完成时一样,它会淡出。

我遵循了 smallenvelop.com 的示例,但 gif 图像看起来冻结了,直到它显示动画结束。我该如何克服呢?像即使同步ajax请求在运行我的页面也能显示动画?

【问题讨论】:

  • 一个 gif 应该在同步 ajax 请求 (iirc) 期间“播放”。你能发布一些你的代码吗?您使用同步而不是异步的任何原因?
  • 使用异步请求。如果您尝试使同步请求起作用,您将在其他地方遇到麻烦。
  • 在页面加载时同步加载通常是为了捕捉访问者在网站上的停留而设计的,即使他们试图在加载完成之前卸载网站。操作的本质也限制了您作为开发人员。另一种情况是编码人员想要限制来自任何一个客户端的并发套接字连接的数量,因此使用同步调用。在后者中,您可以使用异步和连续调用来执行此操作。如果您希望同步代码保持不变,您可以使用 webworker 将其移出主线程。但这越来越奇怪了。
  • @CharlieWynn:在同步 ajax 调用 iirc 期间,gif 应该冻结。这是因为同步 ajax 调用永远不会进入事件循环,因此页面永远不会被重新绘制,因此所有动画都不会发生(即使是 gif)

标签: javascript jquery ajax pageload page-loading-message


【解决方案1】:

在运行同步 ajax 请求时,浏览器选项卡的线程正在执行此操作:处理请求。这就是同步请求的重点。这也是为什么动画在 ajax 请求完成之前被冻结的原因。

使用异步 ajax 请求。

【讨论】:

  • 是的,我就是这样做的,效果很好,动画很流畅,但我遇到了另一个与异步 ajax 请求相关的问题;我会问另一个问题。谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-09-23
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多