#offline #seedstack
#Не в сети #seedstack
Вопрос:
Мы хотели бы сделать доступными несколько экранов в автономном режиме, когда сеть недоступна.
Мы хотим использовать функцию кэширования HTML5, и мы можем кэшировать несколько файлов htmlsи JS, но можем ли мы кэшировать основной файл конфигурации?
Правильный ли это подход? Не могли бы вы, пожалуйста, предложить правильный подход с использованием Seed framework.
Ответ №1:
Прежде чем идти дальше, пожалуйста, обратите внимание, что кэш приложений HTML5, похоже, является функцией, которая в настоящее время устарела. Тем не менее, вы можете использовать кэш приложений HTML5 с помощью SeedStack, хотя количество файлов, участвующих в загрузке приложения, делает это немного непрактичным, поскольку этот процесс в настоящее время не автоматизирован.
Для перехода в автономный режим с помощью веб-приложения SeedStack необходимо:
- Настройте шаблон masterpage.Шаблон по умолчанию не содержит атрибута manifest, поэтому вы должны заменить его своим собственным. Вы можете искать файлы
masterpage.html
ormasterpage-fallback.html
из classpath для использования в качестве отправной точки. Добавьте следующее свойство конфигурации, чтобы указать на ваш собственный шаблон masterpage:org.seedstack.w20.masterpage-template = path/to/my-masterpage.html
- Добавьте
manifest
атрибут в<html>
тег вашего шаблона masterpage, указывающий на манифест HTML5 appcache:<html manifest="my-app.appcache" ...>
- Добавьте исчерпывающий манифест к веб-ресурсам вашего приложения, например
src/main/webapp
, в разделе или подMETA-INF/resources
.
Мое тестирование показывает, что для только что созданного веб-приложения (использующего бизнес-тему) вам нужно добавить 63 URL-адреса в свой манифест, чтобы оно заработало.
Чтобы упростить обслуживание манифеста, вы можете отключить механизм уничтожения кэша, удалив data-w20-app-version
атрибут в <html>
теге. Это приведет к удалению суффикса версии во всех URL-адресах.
В IE / Edge вы должны быть осторожны с некоторыми ограничениями или ограничениями:
- Существует ограничение по количеству записей в кэше (1000 в IE10, не знаю в более новых версиях).
- Это ограничение на размер всего кэша, основанное на размере тома клиентского компьютера.
- Манифест должен подаваться с типом mime text / cache-manifest.
- Ни один ресурс не должен обслуживаться с опцией кэша без хранилища.
Больше информации о Edge здесь: https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/dev-guide/networking-and-connectivity/application-cache/
Комментарии:
1. Спасибо за быстрый ответ. Мы пытаемся заставить это работать, однако мы сталкиваемся с проблемой аутентификации в автономном режиме. Как, по-вашему, нам нужно управлять аутентификацией в автономном режиме?
2. Мы можем правильно настроить начальное приложение, и оно отлично работает в браузере CHROME. Однако в IE 11 и EDGE одно и то же приложение не кэширует файлы. Мы получаем фатальную ошибку AppCache на консоли, и она ничего не кэширует. Также, пожалуйста, обратите внимание, что без SEED для простого веб-приложения мы можем заставить его работать даже в IE.