http POST в AngularJS занимает много времени для загрузки данных

#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');
  });
});
  

}