Как можно кэшировать XHR локально в браузере? - PullRequest
0 голосов
/ 06 ноября 2019

Мне было интересно, как можно локально кэшировать XHR на моем компьютере и использовать его в следующий раз. Ну, я регулярно посещаю интернет-магазин, на странице заказа есть форма, которая включает в себя поле с XHR, и мне нужно заполнить, а затем заполнить мой заказ кнопкой отправки. Иногда, когда на этом сайте много трафика, эти файлы не загружаются в мою систему, и мне приходится многократно обновлять страницу, чтобы получить его. Есть ли способ кешировать это на мой компьютер и использовать его в следующий раз. Я должен сказать, что другие поля формы загружаются полностью и не имеют проблем с ними.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

XHR-ответы автоматически кэшируются в кеш браузера, если это разрешено заголовками кеша HTTP. В самом простом случае попробуйте отправить свой ответ с заголовками «Cache-Control: public, max-age = 0» и «Last-Modified: [yourstamp]», чтобы браузер генерировал условные запросы с помощью «If-Modified-Since»Заголовки запроса, куда вы можете затем отправить ответ «304 Not Modified», и XHR API представит ваш кэшированный ответ как ответ «200 Ok» на ваш скрипт. Или вы можете поэкспериментировать с заголовками max-age / s-maxage и «Expires:», чтобы ваш запрос обслуживался непосредственно из кэша браузера без даже повторной проверки / обхода сервера. Вы также можете использовать заголовки «ETag» вместо «Last-Modified», но поскольку ETag можно использовать для дактилоскопии, я ожидаю, что в будущем они станут неприемлемыми для публичного доступа HTTP.

Обратите внимание, если выиспользуя HTTP / 2 с серверными ресурсами, правила несколько изменяются, и кэшированные ответы ограничиваются сеансом, также чтобы избежать дактилоскопии.

0 голосов
/ 06 ноября 2019

Вы можете использовать локальное хранилище для хранения любых данных. https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage Используйте локальные переопределения для создания собственных локальных js для удаленного сайта и используйте localStorage. https://developers.google.com/web/updates/2018/01/devtools#overrides

...