Можно ли с помощью Java Script вывести вес (кб) изображений сайта?

Новичок в JS, появилась нужда узнать вес картинок на странице, например картинки выше 200кб выводились в консоль разработчика. C blob ничего не понял, объясните подробнее пожалуйста!


Ответы (2 шт):

Автор решения: Денис Степанов

введите сюда описание изображения

Открываете devtools.
1.Заходите во вкладку network Открываете фильтр (воронка слева наверху).
2. Выбираете в фильтре Img, чтобы отсеить все кроме картинок.
3. В строке фильтра вбиваете "larger-than:(размер фото)"
4. Обновляете страницу.

Пример: larger-than:1K - больше 1 кБайт, larger-than:200 - больше 200 байт.

→ Ссылка
Автор решения: Neolot

Принцип примерно такой:

  1. Выбираем все картинки.
  2. Обходим их в цикле и из каждой берем значение атрибута src.
  3. Делаем запрос на сервер и берем значение 'Content-Length' из заголовка ответа.
  4. Выводим результат в консоль.

document.addEventListener('DOMContentLoaded', function(){
    let imgs = document.getElementsByTagName('img'); // Выбираем все картинки на странице
    let imgSrcs = [];

    for ( let i = 0; i < imgs.length; i++ ) {        
        let xhr = new XMLHttpRequest(); // Делаем запрос на сервер для каждой картинки
        xhr.open('HEAD', imgs[i].src, true);
        xhr.onreadystatechange = function(){
          if ( xhr.readyState == 4 ) {
            if ( xhr.status == 200 && xhr.getResponseHeader('Content-Length') > 1024*200 ) {
              console.log(imgs[i].src + ': ' + xhr.getResponseHeader('Content-Length') + ' bytes'); // Выводим сообщение в консоль, если вес картинки больше 200 Кб
            }
          }
        };
        xhr.send(null);
    }
});

→ Ссылка