我正在使用Angular和$ http請求從服務器獲取數據。它在同一個服務器目錄中模擬數據,但在20秒內返回響應。這是很長的路要走。該請求在應用程序啓動時執行。 我試圖使用jQuery $ .ajax執行相同的查詢,並且它在10 ms內工作。但我想擺脫jQuery。 爲什麼AngularJs $ http需要這麼長時間?
我正在使用Ifeanyi Isitor's Lazy Loading In AngularJS示例如何使用帶角度的require.js。加載我的第一個視圖的控制點指向執行查詢的服務。在鉻開發工具網絡traking我看到它需要少10毫秒時獲取文件。但使用console.time設置它之前執行查詢,並在成功結束它承諾它記錄約20000毫秒。可以因爲延遲加載嗎?但爲什麼jQuery工作得很快?這裏是我的服務代碼
define(['appModule'], function(app) {
app.lazy.factory('daoService', ['$http', function($http) {
var ...
...
getChanges = function(tableName, modifiedSince, callback) {
console.log('data access time starts');
console.time('data access time');
// this works in 20000 ms
$http.post(tablesUrl[tableName]).success(function(data) {
console.log("The server returned " + data.length + " changes);
console.timeEnd('data access time');
callback(data);
}).error(function(data){
console.log(data);
});
/* this works in about 10 ms
$.ajax({
url: tablesUrl[tableName],
dataType:"json",
success:function (data) {
console.log("The server returned " + data.length + " changes);
console.timeEnd('data access time');
callback(data);
},
error: function(model, response) {
console.log(response);
}
});*/
},
通常AngularJS是非常快的。請提供一些代碼 – tschiela
您的服務器是罪魁禍首。不是角度。 – Abilash
它也可能是鎖定在前端的東西。請提供一些代碼來幫助 – bdavidxyz