Как открыть проводник dom в браузере

Обновлено: 04.07.2024

Ситуации для хранения и обработки данных в браузере включают:

  • сохранение состояния клиентского приложения, такого как текущий экран, введенные данные, пользовательские настройки и т. д.
  • утилиты, которые обращаются к локальным данным или файлам и имеют строгие требования к конфиденциальности
  • прогрессивные веб-приложения (PWA), которые работают в автономном режиме

Вот десять вариантов хранения данных браузера:

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

Сохранение данных

Как правило, данные, которые сохраняются, будут:

  • Постоянные (persistent): они остаются до тех пор, пока ваш код не решит удалить их, или
  • изменяемые (volatile) : они остаются до завершения сеанса браузера, обычно, когда пользователь закрывает вкладку

Постоянные данные могут быть заблокированы или удалены пользователем, операционной системой, браузером или плагинами в любой момент. Браузер может принять решение об удалении более старых или больших элементов по мере приближения к граничной емкости, выделенной для этого типа хранилища.

Браузеры также записывают состояние страницы. Вы можете уйти с сайта и кликнуть назад или закрыть и снова открыть вкладку; страница должна выглядеть идентично. Переменные и данные, доступные только для сеанса, по-прежнему доступны.

1. Переменные JavaScript

  • размер — нет строгих ограничений, но при заполнении памяти может произойти замедление работы браузера или сбои
  • скорость чтения / записи — самый быстрый вариант
  • сохранность — плохая: данные стираются при обновлении браузера

Сохранение состояния в переменных JavaScript — самый быстрый и простой вариант. Я уверен, что вам не нужен пример, но …

  • легко использовать
  • быстрота
  • нет необходимости в сериализации или десериализации
  • ненадежность: обновление или закрытие вкладки стирает все
  • сторонние скрипты могут исследовать или перезаписывать глобальные значения (window). Вы уже используете переменные. Вы можете рассмотреть возможность сохранения состояния переменной при выгрузке страницы .

2. Хранилище узлов DOM

  • размер — нет строгих ограничений, но не идеально для большого количества данных
  • скорость чтения / записи — Быстрый
  • сохранность — плохая: данные могут быть удалены другими скриптами или обновлением

Большинство элементов DOM на странице или в памяти могут хранить значения в именованных атрибутах. Безопаснее использовать имена атрибутов с префиксом data-:

  • атрибут никогда не будет иметь связанных функций HTML
  • Вы можете получить доступ к значениям с помощью свойства dataset или через методы .setAttribute() и .getAttribute().

Значения хранятся в виде строк, поэтому может потребоваться сериализация и десериализация. Например:

  • вы можете определять значения в JavaScript или HTML, например <main data-value1=»1″>
  • полезно для хранения состояния конкретного компонента
  • DOM работает быстро! (вопреки распространенному мнению)
  • ненадёжно: обновление или закрытие вкладки стирает значения
  • только строки: требуется сериализация и десериализация
  • большой DOM влияет на производительность
  • сторонние скрипты могут исследовать или перезаписывать значения

Хранилище узлов DOM работает медленнее, чем переменные. Используйте его экономно в ситуациях, когда удобно хранить состояние компонента в HTML.

3. Web хранилище (localStorage и sessionStorage)

  • размер — 5 МБ на домен
  • скорость чтения / записи — синхронная работа: может быть медленной
  • сохранность — данные остаются до тех пор, пока не будут удалены

Веб-хранилище предоставляет два похожих API для определения пар имя/значение. Используйте:

  • window.localStorage для хранения постоянных данных и
  • window.sessionStorage для сохранения данных только сеанса, пока вкладка браузера остается открытой

Храните или обновляйте именованные элементы с помощью .setItem():

Получайте их с помощью .getItem():

И удалите их с помощью .removeItem():

Другие свойства и методы включают:

  • .length: количество хранимых элементов
  • .key(N): имя N-го ключа
  • .clear(): удаление всех сохраненных элементов

Изменение любого значения вызывает событие хранения в других вкладках / окнах браузера, подключенных к тому же домену. Ваше приложение может ответить соответствующим образом:

  • простой API (пары имя / значение)
  • параметры сеанса и постоянного хранилища
  • хорошая поддержка браузера
  • Только строки: требуется сериализация и десериализация
  • неструктурированные данные без транзакций, индексации или поиска
  • синхронный доступ повлияет на производительность больших наборов данных

Веб-хранилище идеально подходит для простых, небольших и разовых значений. Оно менее практично для хранения больших объемов структурированной информации, но вы можете избежать проблем с производительностью, записывая данные при выгрузке страницы.

4. IndexedDB

  • размер — зависит от устройства. Не менее 1 ГБ, но может составлять до 60% оставшегося дискового пространства
  • скорость чтения / записи — быстрый
  • сохранность — данные остаются до тех пор, пока не будут удалены

IndexedDB предлагает низкоуровневый API, похожий на NoSQL, для хранения больших объемов данных. Хранилище можно индексировать, обновлять с помощью транзакций и выполнять поиск с помощью асинхронных методов.

IndexedDB API сложен и требует некоторого манипулирования событиями. Следующая функция открывает соединение с базой данных при передаче имени, номера версии и дополнительной функции обновления (вызываемой при изменении номера версии):

Следующий код подключается к базе данных myDB и инициализирует хранилище объектов todo (аналогично таблице SQL или MongoDB). Затем он определяет автоматически увеличивающийся ключ с именем id:

Как только соединение будет готово, вы можете с помощью .add добавить новые элементы данных в транзакцию:

И вы можете получить значения, например, первый элемент:

  • гибкое хранилище данных с самым большим пространством
  • надежные транзакции, возможности индексации и поиска
  • хорошая поддержка браузера
  • сложный обратный вызов и API на основе событий
  • IndexedDB — лучший вариант для надежного хранения больших объемов данных, но вам может понадобиться библиотека-оболочка, такая как idb , Dexie.js или JsStore .

5. Cache API

  • размер — зависит от устройства, но Safari ограничивает каждый домен до 50 МБ
  • скорость чтения / записи — быстрый
  • сохранность — данные остаются до очистки или через две недели в Safari

Аналогичная функция может получить элемент из кеша. В этом примере она возвращает основной текст ответа:

  • хранит любой сетевой ответ
  • может улучшить производительность веб-приложений
  • позволяет веб-приложению работать в автономном режиме
  • современный API
  • не практично для хранения состояния приложения
  • возможно менее полезно за пределами прогрессивных веб-приложений

Apple недоброжелательно относится к PWA и Cache API

Cache API — лучший вариант для хранения файлов и данных, полученных из сети. Вы, вероятно, могли бы использовать его для хранения состояния приложения, но он не предназначен для этой цели, и есть варианты получше.

5.5 AppCache

AppCache был предшественником Cache API . Это не то решение для хранения, которое вы ищете. Здесь ничего нет. Пожалуйста, двигайтесь дальше.

6. API доступа к файловой системе

  • размер — зависит от оставшегося места на диске
  • скорость чтения / записи — зависит от файловой системы
  • сохранность — данные остаются до тех пор, пока не будут удалены

API доступа к файловой системе позволяет браузеру читать, записывать, изменять и удалять файлы из локальной файловой системы. Браузеры работают в изолированной среде, поэтому пользователь должен предоставить разрешение на определенный файл или каталог. Чтобы веб-приложение могло читать или записывать данные, как настольное приложение, используют FileSystemHandle.

Следующая функция сохраняет объект Blob в локальный файл:

  • веб-приложения могут безопасно читать и записывать в локальную файловую систему
  • меньше необходимости загружать файлы или обрабатывать данные на сервере
  • отличная функция для прогрессивных веб-приложений
  • минимальная поддержка браузера (только Chrome)
  • API может измениться

Этот вариант хранения для меня очень интересен, но вам придется подождать пару лет, прежде чем он станет жизнеспособным для производственного использования.

7. API записей файлов и каталогов

  • размер — зависит от оставшегося места на диске
  • скорость чтения / записи — неизвестный
  • сохранность — данные остаются до тех пор, пока не будут удалены

API записей файлов и каталогов предоставляют песочницы файловой системы доступной для домена, которые могут создавать, писать, читать и удалять каталоги и файлов.

  • нестандартные, несовместимость между реализациями и поведение могут измениться.

MDN прямо заявляет: не используйте это на производственных сайтах . Поддержка будет в лучшем случае через несколько лет.

8. Файлы cookie

  • размер — 80 КБ на домен (20 файлов cookie размером до 4 КБ в каждом)
  • скорость чтения / записи — быстрый
  • сохранность — хорошая: данные остаются до тех пор, пока они не будут удалены или не истечет время их жизни

document.cookie устанавливает значения cookie в клиентском JavaScript. Вы должны определить строку с именем и значением, разделенными символом равенства (=). Например:

Значения не должны содержать запятых, точек с запятой или пробелов, поэтому может потребоваться encodeURIComponent():

К дополнительным настройкам файлов cookie можно добавить разделители через точку с запятой, в том числе:

Пример: установить файл cookie, срок действия которого истекает через 10 минут и доступен по любому пути в текущем домене:

document.cookie возвращает строку, содержащую каждую пару имени и значения, разделенную точкой с запятой. Например:

Функция ниже анализирует строку и преобразует ее в объект, содержащий пары имя-значение. Например:

  • надежный способ сохранить состояние между клиентом и сервером
  • ограничен доменом
  • автоматический контроль истечения срока действия с помощью max-age (секунд) или Expires (дата)
  • используется в текущем сеансе по умолчанию (установите дату истечения срока, чтобы данные сохранялись после обновления страницы и закрытия вкладки)

Избегайте файлов cookie, используйте их если нет реальной альтернативы.

9. window.name

  • размер — варьируется, но должно быть несколько мегабайт
  • скорость чтения / записи — быстрый
  • сохранность — данные сеанса остаются до закрытия вкладки

Свойство window.name устанавливает и получает имя контекста активного окна. Вы можете установить одно строковое значение, которое будет сохраняться между обновлениями браузера. Например:

Исследуйте значение, используя:

  • легко использовать
  • может использоваться только для данных сеанса
  • Только строки: требуется сериализация и десериализация
  • страницы в других доменах могут читать, изменять или удалять данные (никогда не используйте их для конфиденциальной информации)

Window.name не предназначен для хранения данных. Это хак, и есть варианты получше.

10. WebSQL

  • размер — 5 МБ на домен
  • скорость чтения / записи — медленная
  • сохранность — данные остаются до тех пор, пока не будут удалены

WebSQL был попыткой перенести в браузер хранилище баз данных, подобное SQL. Пример кода:

Chrome и некоторые версии Safari поддерживают эту технологию, но против нее выступили Mozilla и Microsoft в пользу IndexedDB.

  • разработан для надежного хранения и доступа к данным на стороне клиента
  • знакомый синтаксис SQL, часто используемый серверными разработчиками
  • ограниченная поддержка браузеров
  • несогласованный синтаксис SQL в браузерах
  • асинхронный, но медленный API на основе обратного вызова
  • плохая работа

Не используйте WebSQL! Он не был жизнеспособным вариантом с тех пор, как устарела его спецификация в 2010 году.

Тщательная проверка хранилища

API хранилища может исследовать пространство , доступное для веб-хранилища, IndexedDB, и Cache API. Все браузеры, кроме Safari и IE, поддерживают это API, которое предлагает метод .estimate() для вычисления значений quota (пространства, доступного для домена) и usage (пространства, уже используемого). Например:

Доступны еще два асинхронных метода:

  • .persist() : возвращает true если у сайта есть разрешение на хранение постоянных данных, и
  • .persisted() : возвращает true если сайт уже сохранил постоянные данные

Панель «Приложение» в инструментах разработчика браузера ( в Firefox называется « Хранилище» ) позволяет просматривать, изменять и очищать localStorage, sessionStorage, IndexedDB, WebSQL, файлы cookie и кеш хранилища.

Заключение

Ни одно из этих решений для хранения не является идеальным, и вам нужно будет внедрить несколько решений в сложное веб-приложение. Это означает изучение дополнительных API. Но иметь выбор — это хорошо — конечно, при условии, что вы можете подобрать подходящий вариант!

Добрые люди, пожалуйста помогите. Кто редактировал позиции ПЗ через проводник DOM (это когда сайт не даёт редактировать, а выбрасывает вверх страницы), может у кого-то тоже была такая проблема. У меня в этом окне только такие надписи. (скрин, не мой, но у меня такая же ситуации один в один) Кнопка Ctrl+B не работает. Что делать. Может программисты среди нас есть, очень нужна помощь.

Я правильно поняла, что Вы не можете отредактировать позиции в DOM?

Я правильно поняла, что Вы не можете отредактировать позиции в DOM?

Да, у других людей во вкладке проводник ДОМ открывается страница HTML и её можно редактировать, а у меня вот это (как на скрине).
И никаких функций редактирования нет (((

Да, у других людей во вкладке проводник ДОМ открывается страница HTML и её можно редактировать, а у меня вот это (как на скрине).
И никаких функций редактирования нет (((

Я сначала скачала обновление вот такое и установила (KB . ) которое. сначала как у вас было.все отредактировала

Я сначала скачала обновление вот такое и установила (KB . ) которое. сначала как у вас было.все отредактировала

вот это не совсем поняла что значит -
и установила (KB . )

вот это не совсем поняла что значит -
и установила (KB . )

скачала обновление для експлорера KB3134814,установила.и у меня заработало редактирование в DOM

скачала обновление для експлорера KB3134814,установила.и у меня заработало редактирование в DOM

спасибо, завтра попробую, надеюсь поможет

Что такое DOM? Как им пользоваться?

спасибо, завтра попробую, надеюсь поможет

авы нажимали правой кнопкой мышки на слове ИЗМЕНИТЬ и выбирали проверить элемент?

авы нажимали правой кнопкой мышки на слове ИЗМЕНИТЬ и выбирали проверить элемент?

да, так и делала, правой кнопкой на слове изменить, дальше проверить элемент и у меня такое вылезает (как на скрине)

авы нажимали правой кнопкой мышки на слове ИЗМЕНИТЬ и выбирали проверить элемент?

подскажите что дальше делать? Впервые слышу про какой то "дом". У меня тож не изменяются позиции в пз-выкидывает наверх. Нажала сейчас на -проверить элемент-выскочило окно create.html. - и что дальше делать? Неужели можно с помощью этого изменить позиции.

да, так и делала, правой кнопкой на слове изменить, дальше проверить элемент и у меня такое вылезает (как на скрине)

у меня получилось все сделать такого не было как у вас

подскажите что дальше делать? Впервые слышу про какой то "дом". У меня тож не изменяются позиции в пз-выкидывает наверх. Нажала сейчас на -проверить элемент-выскочило окно create.html. - и что дальше делать? Неужели можно с помощью этого изменить позиции.

можно но это сложно, у вас все позиции не изменяются? особые закупки дает изменить? у меня не изменялись те позиции в названии которых были кавычки

можно но это сложно, у вас все позиции не изменяются? особые закупки дает изменить? у меня не изменялись те позиции в названии которых были кавычки

особые дал. Некоторые тоже дал позиции изменить. А вот большинство позиций не меняет((

можно но это сложно, у вас все позиции не изменяются? особые закупки дает изменить? у меня не изменялись те позиции в названии которых были кавычки

может где то инструкция есть на сайте?

особые дал. Некоторые тоже дал позиции изменить. А вот большинство позиций не меняет((

чем они отличаются от тех что дает менять? там есть кавычки или скобки или еще какие то знаки?

может где то инструкция есть на сайте?

это не инструкция это взлом программного кода)))))))

Аааааа)))) я ж в этом туповата)))

найдите отличие и станет понятно

это не инструкция это взлом программного кода)))))))

сейчас сравню позиции

найдите отличие и станет понятно

знаки и там и там есть. Есть и позиции вообще без знаков:одну дал изменить, другую аналогичную не дал( . Чем еще могут отличаться кроме знаков - не знаете?

знаки и там и там есть. Есть и позиции вообще без знаков:одну дал изменить, другую аналогичную не дал( . Чем еще могут отличаться кроме знаков - не знаете?

кто ж его знает у меня конкретно были кавычки а у вас если нет их то может вам подождать может это глюк сайта

кто ж его знает у меня конкретно были кавычки а у вас если нет их то может вам подождать может это глюк сайта


Одним из значительных нововведений в Internet Explorer 8 является поддержка технологии DOM Storage, которая представляет собой часть новых технологий грядущего стандарта HTML 5. Dom Storage (или как его еще называют Web Storage) – это механизм, который призван предоставить разработчику возможность хранить набор данных значительного объема на стороне клиента и получать к ним доступ с помощью специального API. На данный момент, полная поддержка DOM Storage реализована в браузерах Firefox 3.5 (с 2.0 существует частичная поддержка), Safari 4.0 и Internet Explorer 8, в котором эта поддержка появилась с версии beta2. Рассмотрим, что представляет собой эта технология, для чего она нужна и как работает.

Необходимость

  • cookie имеет ограничение по размеру, Internet Explorer до 8 версии позволял хранить в cookie до 4 килобайт данных, в восьмой версии эта планка поднята до 10 килобайт, но все равно такой размер – это существенный недостаток;
  • данные cookie участвуют в формировании каждого запроса к серверу, то есть при каждом запросе к серверу все cookie автоматически отправляются вместе с запросом, что увеличивает трафик;
  • cookie сопоставлены с web-сайтом и, если пользователь работает с сайтом через две вкладки, он оперирует одними и теми же данными cookie. Этот момент может нарушить правильную работу сайта и ограничивает применение cookie.
  • до 10 мегабайт для хранения данных для каждого сайта (5 Mb в Firefox);
  • доступ только на стороне клиента, данные DOM Storage не отправляются вместе с запросами;
  • два механизма localStorage и sessionStorage позволяют гибко управлять данными, контекст sessionStorage и его данные существуют только для одной вкладки и если пользователь закроет ее или откроет еще одну то, данные из вкладки доступны не будут.
  • storage – представляет собой объект, который осуществляет доступ к набору данных хранилища. Согласно спецификации набор данных должен представлять собой пары строк “ключ-значение”. Данные отличные от строковых, должны быть приведены к строкам перед сохранением в хранилище;
  • window.sessionStorage – возвращает объект типа storage и представляет собой хранилище пользовательского набора данных которое существует и актуально только для одной вкладки браузера до тех пор, пока она не будет закрыта;
  • window.localStorage – похож на sessionStorage за исключением того, что данные этого хранилища сохраняются после закрытия вкладки и доступны всегда, что делает этот объект похожим на cookie. Каждый домен и субдомен имеет свой объект window.localStorage.
  • setItem, getItem, removeItem – создает, получает или удаляет новый элемент данных;
  • clear – “стирает” все данные хранилища;
  • length – возвращает количество сохраненных элементов данных;

Пример

Простейший пример работы с localStorage, данные сохраняются и достаются из хранилища:


sessionStorage.someDataKeyName = ‘данные’;

var data = sessionStorage.someDataKeyName;

Обратите внимание, что создавать и получать доступ к данным в хранилищах DOM Storage можно не только через индексаторы типа sessionStorage[ ' someDataKeyName ' ], но и через псевдосвойства. Первая попытка записать данные в такое свойство создаст его экземпляр в хранилище.

Заключение

В этой статье я постарался рассмотреть относительно новый механизм DOM Storage, который является частью HTML 5 полностью поддерживается Internet Explorer 8. К сожалению, еще не все браузеры поддерживают DOM Storage, так например поддержка отсутствует у браузеров Chrome и Opera. Это в некоторой мере мешает распространению технологии, которая может стать очень полезной при разработке клиентских web-страниц с богатым функционалом.

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

DOM — это объектная модель документа, которую браузер создает в памяти компьютера на основании HTML-кода, полученного им от сервера. Иными словами, это представление HTML-документа в виде дерева тегов.

Браузер запрашивает у сервера веб-страницу и получает в ответ ее исходный HTML-код. Браузеру такой код сначала нужно разобрать на элементы. В процессе разбора он строит на основе HTML-кода DOM-дерево. После этого браузер отрисовывает страницу, используя созданное им DOM-дерево, а не исходный HTML-документ.

Такое дерево нужно для правильного отображения сайта и внесения изменений на страницах с помощью JavaScript. JavaScript — это «живой» язык, он может изменять страницу в реальном времени уже после того, как она «пришла» с сервера в браузер. Этим JavaScript принципиально отличается от PHP, который компилирует страницу и только потом посылает в браузер уже готовый HTML-код.


Для чтения и изменения DOM браузеры предоставляют DOM API (программный интерфейс). DOM API — это набор различных объектов, которые разработчик использует для чтения и изменения DOM с помощью JavaScript.

Из чего состоит HTML-код страницы

Тег head используется для подключения информации, которая не будет отображаться непосредственно на странице, но будет использоваться для подключения важных файлов. Тут бывает, например, подключение одного или нескольких CSS-файлов, подключенные шрифты, название сайта, язык, кодировка, скрипты, которые должны выполняться в первую очередь, иконка сайта или базовый фон.

В body находится значимое содержимое. Обычно в body выделяют три части: шапка сайта, основное содержимое и подвал. В шапке обычно содержится верхнее меню сайта, за это отвечает тег header. Для содержимого нет определенного тега, но обычно используется section. Для подвала используется footer, там обычно содержатся контактная информация, ссылки на ключевые страницы сайта и копирайт. Теги header и footer должны быть единственными на странице, а section может бесконечно повторяться.

Как строится DOM-дерево

Для описания структуры DOM потребуются термины: корневой, родительские и дочерние элементы. Корневой элемент находится в основании всей структуры и не имеет родительского элемента. Дочерние элементы не просто находятся внутри родительских, но и наследуют различные свойства от них. На картинке ниже изображено DOM-дерево.


Корневой элемент здесь html — без него страница не будет скомпилирована. Он не имеет родительского (вышестоящего) элемента, но имеет два наследника или дочерних элемента — head и body.

По отношению друг к другу элементы head и body являются сиблингами (братьями и сестрами). В каждый из них можно вложить еще много дочерних элементов. Например, в head обычно находятся link, meta, script или title.

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

В body могут находиться разнообразные элементы. Например, в родительском body — дочерний элемент header, в элементе header — дочерний элемент section, в родительском section — дочерний div, в div — элемент h3, и наконец, в h3 — элемент span. В этом случае span не имеет дочерних элементов, но их можно добавить в любой момент.

Можно описать это так:


А если бы система была бы более разветвленная и с большим количеством вложений — так:


На схеме изображено довольно большое DOM-дерево, и его сложно воспринимать из-за его размера. Для удобства часто используется система многоуровневых списков. Например, предыдущее дерево можно преобразовать в такой список:


Представление элементов HTML-страницы в виде списка

Если преобразовать дерево на предыдущем рисунке в код, то получится так:

Как видно из кода, некоторые теги должны закрываться, а некоторые — нет.

Эту схему важно понимать, чтобы разобраться с темой наследования свойств. Элементы могут наследовать не все, но многие свойства своих родителей — например, цвет, шрифт, видимость и т.д.

Таким образом, чтобы задать стиль шрифта на всей странице, потребуется не прописывать цвет для каждого элемента, а задать его только для body. А чтобы изменить наследуемое свойство у дочернего элемента, нужно прописать только ему новые свойства. Наследование удобно для создания единообразной страницы.

Зачем нужно знать, как строится DOM-дерево?

Большинство действий при работе с DOM сводится к поиску нужных элементов. Не понимая, как строится DOM-дерево, и не зная, каковы связи между узлами, найти нужный элемент будет сложно.

Как просмотреть DOM-дерево?

В любом браузере есть инструменты, с помощью которых можно отобразить DOM-дерево. Если выбрать какой-либо объект в структуре, он будет подсвечен на странице. При этом для него будут выведены свойства CSS, которые работают сейчас, и те, которые не задействованы.

Чтобы посмотреть DOM в браузере, нужно зайти в инструменты разработчика. В большинстве браузеров для этого надо нажать на F12 — тогда откроется дополнительная панель с вкладками и зонами.


На изображении выше во вкладке Elements представлена структура DOM в виде многоуровневого вложенного списка. Каждый элемент можно открыть и посмотреть, что у него внутри, его расположение на странице и размеры этого элемента со всеми отступами.

Также там находятся другие инструменты — например консоль, где выводится информация об ошибках и куда можно ввести необходимые данные, например для отладки (исправления ошибок в коде).

Панель ресурсов отображает подключенные ресурсы — это шрифты, изображения, JavaScript- и CSS-файлы.

Читайте также: