【发布时间】:2014-01-09 00:39:52
【问题描述】:
我有一个非常简单的应用程序,它使用控制器内部的 $http.get 加载 JSON 数组。它将结果数据分配给范围,HTML 重复结果以显示列表。这是一个非常简单的angularjs示例。
function ViewListCtrl($scope, $http) {
$scope.shoppinglist = [];
$scope.loadList = function () {
var httpRequest = $http({
method: 'POST',
url: 'viewList_service.asp',
data: ''
}).success(function (data, status) {
$scope.shoppinglist = data;
});
};
$scope.loadList();
}
在慢速服务器上进行测试时,我意识到在渲染重复区域时会有 3 秒的阻塞延迟。调试告诉我,我的控制器在页面加载之前不会尝试获取数据。我的页面需要 3 秒才能加载。然后我必须再等待 3 秒才能加载 json 数据。
我想尽快加载数据,以便在我的控制器准备好时准备好。简单地说,我想预加载数据,使其与我的模块并行加载。
我已经搜索了所有内容,发现最接近的是“解决”,但我没有使用路线。这是一个非常简单的列表,没有路线或模板。
如何在页面开始呈现时立即加载 JSON,以便在控制器准备好并且没有阻塞时准备好......然后将该数据放入范围?
【问题讨论】:
-
你确定你的函数是在 onload() 事件之后被调用的吗?如果是这样,您可以在 onload() 本身之前调用它,从而节省这 3 秒。你可能想看看this question.