Я использую скрипт JavaScript, который сообщает мне, кэшируются ли определенные URL-адреса изображений в кеш браузера пользователя.Я использую это, потому что я строю массив не кешированных изображений, которые будут загружаться отдельно, после того, как будет сделан более важный процесс.Этот сценарий написан специально для Google Chrome, поэтому мне не нужно кросс-браузерное решение.
Моя текущая функция проверяет время, потраченное на загрузку изображения, и, если оно меньше нескольких миллисекунд (в настоящее время 25 мс),Я предполагаю, что он извлекается из кэша.
Разницу между кэшированными и не кэшированными изображениями легко обнаружить вручную, проверив панель ресурсов в инструменте разработчика Chrome.При наведении указателя времени загрузки Chrome сообщает, был ли файл извлечен из кэша или нет, печатая всплывающую подсказку, которая выглядит следующим образом: xx ms Latency, xx ms Download (from cache)
.
Я заметил, что в некоторых случаях время задержки довольно велико (например, 64 мс только для загрузки 2 мс) и делает мою функцию обнаружения бесполезной, так как общее время загрузки превышает мой порог.Увеличение порога невозможно, так как небольшие и не кешированные изображения также могут быть загружены за то же время.
Теперь, когда у вас возникла проблема, вот мой вопрос:
- Это так?Можно ли на 100% точно проверить (например, на панели ресурсов Chrome), что файл поступил из кеша?(Я полагаю, если эта панель делает это, должен быть способ, но я не могу найти его в Интернете)
или
- есть ли способ разделить две задержки (то есть Latency vs. Download), чтобы можно было проверить только истинное время загрузки?Расчет времени, потраченного между запуском загрузки изображения и событием onload
, возвращает общее количество времени.
Я благодарю вас за чтение моего вопроса, и даже если у вас нет точного решениямысли, идеи приветствуются!
(PS: я не являюсь носителем английского языка, поэтому, пожалуйста, не обвиняйте меня в ошибках!)
Гаэль