【发布时间】:2012-08-19 22:58:50
【问题描述】:
我正在使用 javascript 来完成有时需要很长时间才能完成的命令,但是当我单击按钮时,按钮保持按下状态并且在 javascript 执行完成之前不会更新屏幕。我需要知道如何在执行 javascript 时继续更新屏幕,因为我想在执行 javascript 时显示一个加载器。
【问题讨论】:
标签: javascript button loader
我正在使用 javascript 来完成有时需要很长时间才能完成的命令,但是当我单击按钮时,按钮保持按下状态并且在 javascript 执行完成之前不会更新屏幕。我需要知道如何在执行 javascript 时继续更新屏幕,因为我想在执行 javascript 时显示一个加载器。
【问题讨论】:
标签: javascript button loader
图像不显示,因为只有在当前 Javascript 堆栈结束后,浏览器才会进行重绘/重绘。
您可以做的是显示加载程序并在重绘发生后使用setTimeout 调用您的重处理函数。
请注意,如果您的函数执行同步操作,例如在您的小提琴中执行 for 循环 100000000 次,您的浏览器将忙于处理它以动画加载图像(然后您将有一个静态图像) .
onclick="show_loader(); setTimeout(fn, 100);"
【讨论】:
=]我现在将超时时间增加到 0.1 秒,因为它在我的 Nightly 17 上没有正确显示,至少现在它在处理发生之前稍微对图像进行了动画处理。你可以稍微增加一点,比如半秒 @987654328 @ 如果你愿意,可以给你一种加载的感觉。 :)
使用 jQuery。 jQuery.click 将获得一个 on click 动作,然后使用 jQuery 的切换和一个在 click 函数中包含加载 gif 的 div。
【讨论】: