【发布时间】:2014-02-25 01:10:00
【问题描述】:
我正在构建一个应用程序,在该应用程序中我正在执行一些冗长(10-15 秒)的 java 脚本执行。我想在执行此操作时显示 gif 图像。我添加了一个 gif 加载图像,在开始处理我的 javascript 之前,我将包含 gif 图像的 div 的样式设置为 display:block,在 javascript 处理完成后,我将其设置回 display:none。我可以看到 gif 图像出现,但它没有显示动画。它卡住了。这个 gif 是一个加载图标。
我的 javascript 函数看起来像这样
function jsFunc(){
// set the div containg the image to display:block
elmDivGif.style.display="block";
Here comes my operation which will take 10-15 secons to finish
// setting the image style to none
elmDivGif.style.display="none";
}
这种方法有什么问题吗?我感觉gif动画和js都是用同一个线程来运行的,而且一次只对一个线程可用。
请指教。
【问题讨论】:
-
你能贴出动图吗?我认为问题在于图像。你也可以尝试从ajaxload.info下载一个loader
-
您确定动画 .gif 在 javascript 未运行时可以正常工作吗?
-
JavaScript 是单线程的,因此它不能同时显示动画和执行昂贵的事情。
-
@pimvdb:我认为 OP 使用了动画 gif。与 JavaScript 无关。如果操作错误,请纠正我。
-
@Jcubed - 是的,当没有并行的 JS 处理时,gif 可以工作。我观察到的另一件事是,通过在 JS 执行中放置警报。每当显示警报等待我的操作时,gif 就会开始动画。我认为这进一步证明了它是同一线程的问题。
标签: javascript