Почему парсинг fetch json происходит медленнее, если скорость работы браузера низкая?

1
8

Я проводил профилирование простого вызова браузера fetch и заметил кое-что любопытное. Я вставлю сюда пример codeа:

Когда я замедляю сеть из Chrome devTools (или любого другого на основе Chromium), я вижу, что res1 увеличивается, а res2 остается прежним. Когда я делаю то же самое в Firefox, помимо того, что вижу гораздо меньшие тайминги, я также вижу, что res2 увеличивается, а res1 остается прежним, что неожиданно.

У них разная реализация? Почему существует такая разница в поведении? Что именно ожидают два await? await fetch() ждет весь ответ или только заголовки? Потому что это кажется разным в зависимости от браузеров. Может быть, это связано с тем, как Firefox devTools замедляет сеть?

P.S. Думаю, этот вопрос может быть расширением этого: Является ли `Body.json()` быстрее, чем `JSON.parse(responseText)` для JSON, полученного от `fetch`?

    const t0 = performance.now();
    const response = await fetch('http://localhost:3000/data');
    const t1 = performance.now();
    await response.json();
    const t2 = performance.now();
    const res1 = `${t1 - t0}ms`;
    const res2 = `${t2 - t1}ms`;
Боян
Вопрос задан10 июня 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.