发布
社区首页 >问答首页 >Javascript代码在它应该执行之前执行

Javascript代码在它应该执行之前执行
EN

Stack Overflow用户
提问于 2014-12-09 10:23:57
回答 1查看 64关注 0票数 0

我有一些javascript代码在它应该执行之前就被执行了,我不知道为什么。基本上,我有一个for循环,它应该被执行50,000次。但是,这需要一段时间,所以我希望有一个随着for循环的执行而更新的进度条。所以,我有一个if语句,如果u为500,o的值被设置为0,进度条更新为1%,如果进度条为100%,则执行其他代码。然而,其他代码在u达到100之前就被执行了,我不知道为什么。

代码语言:javascript
代码运行次数:0
复制
function thisFunction(){
    var o=0;
    var u=0;
    for(i=1;i<=50000;i++){

        if(o===500){
            o=0;
            u +=1;
            $("#myProgressBar .progress .progress-bar").css('width',u+'%');
            $("#myProgressBar .progress .progress-bar").html(u+'%');

            if(u>99){
                $("#myProgressBar").addClass("hidden");
                /*Other code*/
            }
            else{   
            }
        }
        else{
        }

        /*code that needs to be executed 50,000 times*/
        o +=1;
    }
EN

回答 1

Stack Overflow用户

发布于 2014-12-09 10:44:02

这可能是因为JavaScript是单线程的,不允许浏览器在for循环仍在运行时呈现更新后的进度条。

通常,进度条更新应该使用requestAnimationFrame,甚至使用Web Worker,或者通常是任何类型的异步回调,这些回调允许浏览器在处理过程中继续执行操作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27370605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档