#angularjs #http
#angularjs #http
Вопрос:
у меня проблема с загрузкой данных, загрузка 10000 GPS-координат занимает от 1 до 30 секунд, после проверки на стороне сервера я вижу, что серверу требуется 300 мс времени между запросом к базе данных и выполнением некоторой настройки и отправкой ответа на сторону AngularJS
var getItineraryVehicule_n=function (id_v,date_s,date_e) {
return $q(function (resolve,reject) {
var LOCAL_TOKEN_KEY = 'yourTokenKey';
var token= window.localStorage.getItem(LOCAL_TOKEN_KEY);
token=JSON.parse(token.split('#')[0]);
$httpBackend.whenPOST(/.*/).passThrough();
$http({
method: 'post',
dataType: 'json',
url: SERVER.url token.response.response.user.id '/itinerary_mongodb',
header: {
'Content-Type': 'application/json'
},
data: {
"date_s": date_s ,
"date_e": date_e,
"id_v":id_v
}
}).success(function (result) {
//console.log(JSON.stringify(result));
resolve(result);
}).error(function (err) {
console.log(err);
reject('error itinerary vehicule');
});
});
}
Комментарии:
1. Сколько времени потребовалось на вкладке сеть в инструментах разработчика в вашем браузере? Потому что, возможно, проблема в рендеринге пользовательского интерфейса
2. вкладка «Сеть» занимает 1,27 секунды, но мы добавили консоль. регистрируйте после ответа, чтобы подсчитать время между отправкой POST API и загрузкой данных, это дает мне 3,7 секунды, размер данных составляет 223 КБ
3. Не могли бы вы, пожалуйста, включить код, который регистрирует время, чтобы мы могли видеть, что происходит
4. я думаю, проблема в размере данных, которые я хочу загрузить, эта строка является одной из списка данных, которые я хочу загрузить {«datetime»:1596785496000,»engine»:1,»latitude»:34.8310483,»deviation»:33,»counter»:0.073,»speed»:6,»longitude»:-5.9006116 } я хочу загрузить маршруты за один день из 10000 строк подобным образом, просто чтобы нарисовать маршрут на карте конечный размер данных ответа составляет от 400 КБ до 1 Мб, я не знаю, может ли это повлиять на время ответа и что мне нужно сделать в этом случае, большое спасибо
Ответ №1:
я только что это сделал, но после нескольких раз тестирования я вижу, что время на вкладке сеть в консоли такое же.время регистрации
var getItineraryVehicule_n=function (id_v,date_s,date_e) {
var d = new Date();
return $q(function (resolve,reject) {
var LOCAL_TOKEN_KEY = 'yourTokenKey';
var token= window.localStorage.getItem(LOCAL_TOKEN_KEY);
token=JSON.parse(token.split('#')[0]);
$httpBackend.whenPOST(/.*/).passThrough();
$http({
method: 'post',
dataType: 'json',
url: SERVER.url token.response.response.user.id '/itinerary_mongodb',
header: {
'Content-Type': 'application/json'
},
data: {
"date_s": date_s ,
"date_e": date_e,
"id_v":id_v
}
}).success(function (result) {
console.log("in the service is take : " (new Date().getTime()-d.getTime()));
resolve(result);
}).error(function (err) {
console.log(err);
reject('error itinerary vehicule');
});
});
}