Может ли браузер закэшировать передаваемые ему js-файлы?
Может ли браузер закэшировать передаваемые ему js-файлы?
Допустим он при запросе сообщает серверу хэш кэша, который у него есть. Сервер сравнивает хэши кэша и подготовленных к отправке js-файлов и либо обновляет их (отдает новые), либо сообщает, что изменений нет.
это работает немножко иначе.
браузер получает ресурс (определенный файл, с определенным адресом и именем) и сохраняет его в кэш (если сервер явно не указал, что не надо кэшировать/кэшировать на определенное время). все последующие запросы по этому адресу/имени будут браться с кэша (если он не протух), а не сервера. нет никакой необходимости что-то передавать на сервер, и что-то там сравнивать.
именно поэтому в именах файлов используют хэши или версии/время.
Но можно сделать свою систему кеширования в localStorage.
Обычно, это необходимо для SPA/PWA одностраничных приложений со сложной логикой обработки данных в js и с полным контролем статуса сетевого соединения, т.к необходима корректная работа при полном отсутствии интернет-соединения: offline-режим.