как настроить приложение Seedstack для работы в автономном режиме?

#offline #seedstack

#Не в сети #seedstack

Вопрос:

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

Мы хотим использовать функцию кэширования HTML5, и мы можем кэшировать несколько файлов htmlsи JS, но можем ли мы кэшировать основной файл конфигурации?

Правильный ли это подход? Не могли бы вы, пожалуйста, предложить правильный подход с использованием Seed framework.

Ответ №1:

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

Для перехода в автономный режим с помощью веб-приложения SeedStack необходимо:

  • Настройте шаблон masterpage.Шаблон по умолчанию не содержит атрибута manifest, поэтому вы должны заменить его своим собственным. Вы можете искать файлы masterpage.html or masterpage-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.