【发布时间】: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