【发布时间】:2017-08-25 14:43:06
【问题描述】:
我有一个页面,其中 Angular 使用 ng-init 运行一些 ajax 调用来填充页面。页面加载大约需要 1 秒,我觉得这很奇怪,所以我做了一点挖掘。
这是原始代码(减去错误处理)
accountService.roles(null, function (response) {
$scope.roles = response;
});
masterDataService.getallparties(null, function (response) {
$scope.parties = response;
});
accountService.users($scope.searchFilter, function (response) {
$scope.users = response;
});
现在我使用串行调用而不是并行进行了重写:
accountService.roles(null, function (response) {
$scope.roles = response;
masterDataService.getallparties(null, function (response) {
$scope.parties = response;
accountService.users($scope.searchFilter, function (response) {
$scope.users = response;
});
});
});
瞧,页面现在加载大约需要 100 毫秒。
这是预期的吗?我的服务器(IIS / MVC 4.6)上是否有问题?
【问题讨论】:
-
服务是否都返回一个回调(分配 $scope.params?)。可能是棱角分明的缘故。您使用的是哪个版本的 Angular?
-
在这种情况下,它们都使用:$http({ method: 'GET',并且它们都在成功时分配给 $scope.param。我使用的是 angular 1.5.8
-
这两种情况的页面加载平均时间是否分别为 1 秒(即您是否在每次页面加载时禁用缓存)?
-
我在每个页面加载时都禁用了缓存45
-
现代浏览器应该能够同时处理 4-8 个请求(所以我怀疑这只是 IE 的问题)
标签: javascript c# angularjs asp.net-mvc