我的控制器中有一个get请求:
$http.get('/api/ideas').success(function(ideas) {
vm.ideas = ideas;
});一旦我的控制器被调用,这个api就会被调用,并且我的UI会变得没有响应性,直到我得到回调/所有想法的结果(很明显是mg-重复)。当我在我的数据库中有1000个想法时,我的UI会在3-5秒内失去响应。但我以为那个电话是回电话?!
我的后端是这样的:
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);
});
};这里有什么问题?
编辑-解决:
当我像这样延迟后端时:
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-重复。
发布于 2015-10-30 15:57:17
问题不是这里的回调(它是异步的),问题是通过在DOM中一个一个地添加您的想法来重复执行减慢您的UI。
要解决这个问题,您可以使用分页,或者查看不同的方法来提高ng-重复性能。
这样做的一个基本方法是使用limitTo过滤器:
<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>https://stackoverflow.com/questions/33439807
复制相似问题