Как показать ответ от вызова AJAX GET после того, как пользователь находится в автономном режиме через работника службы? - PullRequest
0 голосов
/ 23 апреля 2019

По сути, я хочу, чтобы мой PWA работал в автономном режиме. Но при загрузке страницы веб-сайта есть вызов GET ajax, который помогает отображать некоторое содержимое страницы.

Вопрос в том, как разрешить моей PWA работать в автономном режиме, поскольку при загрузке страницы будет выполняться вызов ajax, который потребует от меня либо сохранения ответа в кеше?

Поскольку содержимое может быть тяжелым, правильно ли даже кэшировать такое количество данных?

Кроме того, я где-то читал, что мы не можем кэшировать запросы GET, так как я могу продолжить работу с PWA в автономном режиме?

Я пытался просмотреть следующие ссылки, но они не говорят мне, как кэшировать динамический контент

https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker

https://vaadin.com/pwa/learn/caching-strategies

https://jslovers.com/dynamic-cache-serviceworkers.html

1 Ответ

0 голосов
/ 24 апреля 2019

Конечно, вы можете кэшировать «динамический» контент - потому что с точки зрения браузера это просто еще один HTTP-запрос :-) Конечно, логика вашего приложения и сервера зависит от того, насколько это полезно.Для некоторых приложений кеширование динамического содержимого и последующее его отображение пользователю в дальнейшем может работать вполне нормально, но для некоторых других приложений это может привести к проблемам.Знаете, было бы неплохо показывать редко обновляемое изображение аватара, но нельзя показывать старую информацию о валюте, верно?

Вы могли бы также разработать приложение с учетом этих ограничений, возможно, показывать пользователю уведомление со словами «эй, вы используете офлайн-версию, а данным уже XX часов! "или что-то в этом роде.

Вы можете легко хранить несколько мегабайт сетевых ответов в кеше.Если у вас есть более 50 мегабайт, браузеры начинают ограничивать вас.Кроме того, всегда имейте готовую обработку ошибок, если браузер сообщает, что кэш заполнен или что-то в этом роде.

Поможет ли вам это объяснение?

...