В чем разница между HTML5 AppCache и обычным кешем браузера?

Я не понимаю смысла HTML5 AppCache. У нас уже есть нормальный кеш. Если вы посещаете веб-сайт в первый раз, он уже кэширует все активы. Какую дополнительную ценность дает AppCache? Это просто список файлов, чтобы браузер знал, какие ресурсы загружать, даже если прямо сейчас на них не ссылается HTML? Обеспечивает ли браузер кеширование по принципу «все или ничего», то есть гарантирует ли он, что все, на что ссылается манифест, кэшируется или вообще ничего?


person Hongli    schedule 09.10.2012    source источник


Ответы (3)


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

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

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

Эта статья HTML5 Rocks по этому вопросу также содержит полезную информацию.

person net.uk.sweet    schedule 10.10.2012

AppCache фактически использует кеш браузера для поддержки своей работы. Это браузерный эквивалент загрузки приложения для локального запуска.

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

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

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

Еще один важный момент заключается в том, что в appcache действуют другие правила, когда ресурсы отбрасываются. Appcache практически никогда не отбрасывает последний набор ресурсов, а кэширует их целиком. Чтобы предотвратить злоупотребление, он устанавливает ограничения на хранение (иногда всего 5 МБ) того, насколько большим может быть кеш сайта. Напротив, кеш браузера не имеет ограничений для каждого сайта, но будет отбрасывать отдельные ресурсы с сайта, если будут достигнуты глобальные ограничения кеша.

person Joeri Sebrechts    schedule 08.05.2013

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

В дополнение к этому кеш приложения обеспечит

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

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

Манифест кеша. Файл манифеста кеша является сердцем кеша приложения HTML5. Мы можем указать, какие страницы не нужно кэшировать, а какие нет, и даже мы можем повторно использовать это как метод обработки ошибок, для этого мы можем указать пользовательскую страницу ошибки в Раздел FALLBACK, чтобы показать, запрашивает ли пользователь контент, для которого требуется подключение к сети.

Чтобы получить общее представление о кэше приложений, вы можете см. это руководство.

person Rameez    schedule 24.07.2014