Spec-Zone.ru › Web APIs

PerformanceResourceTiming: свойство encodedBodySize

Базовая линия 2023
Новое свойство

С марта 2023 года эта функция работает на последних устройствах и версиях браузеров. Возможно, эта функция не будет работать на старых устройствах или браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Web Workers.

Это encodedBodySize только для чтения свойство, представляющее размер (в октетах) полученного из запроса (HTTP или кэш) тела полезной нагрузки до удаления любых примененных кодировок содержимого (например, gzip или Brotli). Если ресурс получен из кэша приложения или локального ресурса, он должен вернуть размер тела полезной нагрузки до удаления любых примененных кодировок содержимого.

Значение

encodedBodySize свойство может иметь следующие значения:

  • Число, представляющее размер (в октетах) полученного из запроса (HTTP или кэш) тела полезной нагрузки до удаления любых примененных кодировок содержимого.
  • 0 если запрос переходит к другому домену и не используется заголовок HTTP Timing-Allow-Origin.

Примеры

Проверка, было ли содержимое сжато

Если encodedBodySize и decodedBodySize свойства не null и отличаются, содержимое было сжато (например, gzip или Brotli).

Пример использования PerformanceObserver, который уведомляет о новых записях производительности resource по мере их записи во временной шкале производительности браузера. Используйте параметр buffered для доступа к записям до создания наблюдателя.

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    const uncompressed =
      entry.decodedBodySize && entry.decodedBodySize === entry.encodedBodySize;
    if (uncompressed) {
      console.log(`${entry.name} was not compressed!`);
    }
  });
});

observer.observe({ type: "resource", buffered: true });

Пример использования Performance.getEntriesByType(), который отображает только resource записи производительности, присутствующие во временной шкале производительности браузера в момент вызова этого метода:

const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
  const uncompressed =
    entry.decodedBodySize && entry.decodedBodySize === entry.encodedBodySize;
  if (uncompressed) {
    console.log(`${entry.name} was not compressed!`);
  }
});

Информация о размере содержимого из другого домена

Если значение encodedBodySize свойства равно 0, ресурс, вероятно, переходит к другому домену. Чтобы отобразить информацию о размере содержимого из другого домена, необходимо установить заголовок HTTP Timing-Allow-Origin.

Например, чтобы разрешить https://developer.mozilla.org видеть размеры содержимого, ресурс из другого домена должен отправить:

Timing-Allow-Origin: https://developer.mozilla.org

Спецификации

Спецификация
Resource Timing
# dom-performanceresourcetiming-encodedbodysize

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в iOS Samsung Internet WebView Android
encodedBodySize 54 17 45 41 16.4 54 45 41 16.4 6.0 54

См. также

  • Timing-Allow-Origin

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/encodedBodySize

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API