首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在http请求期间保持角度UI响应?

如何在http请求期间保持角度UI响应?
EN

Stack Overflow用户
提问于 2015-10-30 15:43:16
回答 1查看 336关注 0票数 0

我的控制器中有一个get请求:

代码语言:javascript
复制
  $http.get('/api/ideas').success(function(ideas) {
    vm.ideas = ideas;
  });

一旦我的控制器被调用,这个api就会被调用,并且我的UI会变得没有响应性,直到我得到回调/所有想法的结果(很明显是mg-重复)。当我在我的数据库中有1000个想法时,我的UI会在3-5秒内失去响应。但我以为那个电话是回电话?!

我的后端是这样的:

代码语言:javascript
复制
    router.get('/api/ideas', controller.find);

    exports.find = function(req, res) {
      Idea.find(function (err, ideas) {
        if(err) { return handleError(res, err); }
        return res.json(200, ideas);
      });
    };

这里有什么问题?

编辑-解决:

当我像这样延迟后端时:

代码语言:javascript
复制
exports.index = function(req, res) {
  Idea.find(function (err, ideas) {
    if(err) { return handleError(res, err); }
    setTimeout(function() {
      return res.json(200, ideas);
    }, 3000);
  });
};

虽然我只有两个想法,UI是在这3秒内作出反应。我仍然可以点击其他部分,直到我得到回应。所以我觉得伊基是对的。问题不是http获取,而是ng-重复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-30 15:57:17

问题不是这里的回调(它是异步的),问题是通过在DOM中一个一个地添加您的想法来重复执行减慢您的UI。

要解决这个问题,您可以使用分页,或者查看不同的方法来提高ng-重复性能。

这样做的一个基本方法是使用limitTo过滤器:

代码语言:javascript
复制
<div ng-init="totalDisplayed=20" ng-repeat="item in items | limitTo:totalDisplayed">
{{item}}
</div>
<button class="btn" ng-click="totalDisplayed = totalDisplayed+20">Load more</button>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33439807

复制
相关文章

相似问题

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