我在JavaScript中有一个函数需要很长时间才能执行计算。我还有一个GIF,我在开始计算之前会显示它,就像一个进度条。
我面临的问题是即使我将GIF设置为show(),它也不会在循环结束之前显示。
以下是完整的代码:
$(document).ready(function () {
$('#progress').show();
while(true){
//calculation
}
})
<div id="progress" style="display:none">
<img alt="Loading .." src="UILayer/Images/ajax.gif" />
</div>
GIF在循环完成后开始动画。
任何帮助都将受到高度赞赏。
由于
答案 0 :(得分:0)
基本上,你的gif无法正常工作,因为正在运行的js代码会降低它的速度。
您可以尝试在while循环中添加一些警报来重现它。
以下是相关问题: How to keep animated gif running while doing intense calculations
答案 1 :(得分:0)
我遇到了同样的问题。我发现setTimeout工作得相当好:
window.setTimeout(function () {
//here I call the function or run the loop that
//that uses a lot of processing power.
}, 100);
它并不完美。进度动画不会顺利运行,但至少会在较长的动作开始之前出现。