Javascript Время выборки против времени сети XHR - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть базовый c код в javascript для извлечения данных через вызов API:

var t0 = performance.now();
fetch(
    'http://domain/service',
    { method: 'GET' }
  )
  .then( response => {
      //handle response...
       t1 = performance.now();
       console.log('Call to fetch-start took ' + (t1 - t0) + ' milliseconds.');
    } )
  .catch( error => console.error('error:', error) )
  .then( () => {
       ...
       t1 = performance.now();
       console.log('Call to fetch-end took ' + (t1 - t0) + ' milliseconds.');
    } );

Когда я звоню, Chrome сетевое время отображается как:

enter image description here

Но консоль показывает как:

Call to fetch-start took 1931.162 milliseconds.
Call to fetch-end took 2846.36500000488 milliseconds.

Я не понимаю разницы между временем в сети браузера и временем выборки. Они оба должны быть одинаковыми?

1 Ответ

2 голосов
/ 27 апреля 2020

Это потому, что когда fetch разрешается с объектом Body, выполняются только согласования и выборка заголовков.
Выборка данных все еще продолжается, вот как мы можем использовать это тело как поток. .

Ближайшим к фактическому концу выборки будет Body.arrayBuffer(), который не выполняет никакого преобразования для извлеченных данных.

...