我有一个简单的控制器,它调用ajax来检索它的模型(一个包含2d数组的4.5k json)。我使用这个控制器来创建一个显示一系列标签的组合,html是:
<select data-ng-controller="CGSimpleXHRComboController"
data-ng-init="getData(MY_URL)">
<option data-ng-value="item[0]"
data-ng-repeat="item in items"
data-ng-cloak>
{$ item[1] $}
</option>
</select>
这是我的控制者:
angular.module('CGSimpleXHRComboController', []).
controller('CGSimpleXHRComboController', ['$scope', '$http', 'CGLogger',
function($scope, $http, CGLogger) {
"use strict";
$scope.__successHandler = function(data) {
CGLogger.debug('Data has been retrieved');
$scope.items = data.data;
};
$scope.__failHandler = function() {
CGLogger.error(arguments[0]);
};
$scope.getData = function(url) {
CGLogger.debug('Retrieving combo data from "{0}"', url);
$http.get(url).
success(function(data) {
$scope.__successHandler(data);
}).
error(function(msg) {
$scope.__failHandler.apply($scope, arguments);
});
};
}]);
代码可以工作,但是用json中的数据填充组合需要几秒钟。
通过分析XHR电话,Chrome表示它有 3.8秒的延迟!
如果我在控制台中运行jQuery.get(MY_URL)
,响应速度非常快: 40ms 只有延迟!那么......这里发生了什么? (我尝试使用jQuery在控制器中进行调用,但延迟仍然很大......所以问题不在于ajax调用本身)
答案 0 :(得分:0)