首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS渲染阻止进度条更新

AngularJS渲染阻止进度条更新
EN

Stack Overflow用户
提问于 2014-05-22 09:44:55
回答 1查看 579关注 0票数 0

我正在通过ajax加载对象。在发送请求之前,我在屏幕上放置了一个进度条(使用pNotify),并使用setInterval更新它。

当收到响应时,我将数据对象转储到作用域中,并且angular将它们全部呈现在一个ng-repeat中。然而,当它这样做时,它会锁定浏览器-大约3秒钟(可以接受,它正在加载整个文档,其中包括数百个节点,每个节点包含2-5条指令)。

这意味着我漂亮的动画进度条完全停止了。

有没有办法告诉angular在渲染我的所有数据时,让进度条继续显示动画(或者防止它锁定浏览器)?类似于Visual Basic中的"DoEvents“?

EN

回答 1

Stack Overflow用户

发布于 2014-05-22 10:01:32

这与angular无关,而是因为js是一种单一的受限制语言。如果您希望您的进度条继续工作,您应该以异步方式解析我们的信息。或者一次加载一小块数据,这意味着将ng-repeat分配给一个小数组,并使用递归函数或简单的带有超时的for look值来异步增加它,例如

代码语言:javascript
复制
$scope.list=[];
$scope.list=$scope.list.concat(ajaxlist(0,20)); // adds the first 20 elements to the array
for(var i=21;i<ajaxlist.length;i++){
    (function(index){
       $timeout(function(){
           $scope.list.push(ajaxlist[index]);
       })
    })(i)
}

像这样的事情应该可以让你逐步增加你的列表。这应该可以解决冻结条的问题。

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

https://stackoverflow.com/questions/23796547

复制
相关文章

相似问题

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