我想了解爲什麼AngularJS $ http服務成功回調給我一個比$ .ajax成功回調慢的響應時間。
我觸發此代碼5次型動物JSON文件:
if(isJquery){
$.ajax({
type : 'GET',
url : url1,
async : true,
beforeSend: function(xhr){
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xhr.setRequestHeader('Access-Token', token);
},
success : function (returnData) {
Chrono.getTime('ajax success')
},
error : function (xhr, textStatus, errorThrown) {
},
complete : function(){
}
});
}else{
var configuration = {
method: 'GET',
url: url1
};
var headers = {};
headers['Content-Type'] = 'application/json;charset=UTF-8';
headers['Access-Token'] = token;
configuration.headers = headers;
$http(configuration)
.success(
function (data, status, headers, config) {
Chrono.getTime('httpService success')
})
.error(function (data, status, headers, config) {
});
}
使用AJAX我接收到該響應時間:
AJAX成功= 332次
AJAX成功= 335
ajax成功= 336
ajax成功= 337
阿賈克斯成功= 361
與$ HTTP:
HttpService的成功= 325
HttpService的成功= 357
HttpService的成功= 380
HttpService的成功= 430
httpService s訪問= 538
我知道Angulars使用承諾來處理回調......它可以解釋爲什麼響應時間在增加?也許我不明白如何最好地使用$ http服務。
我接受建議和anaylsis。
謝謝你的時間。
編輯:我注意到,當成功回調中有數據或函數要處理時,響應時間增加得更多。這就像Angular在處理其他成功回調之前掛起...
jQuery使用承諾來處理回調也使用jQuery Deferred對象。響應時間與這裏的承諾無關...... –