javascript - Как запретить браузеру кэшировать файл json




html caching (3)

Два варианта:

  1. Добавьте параметр запроса mySaveFiles.json? T = timestamp в конец URL-адреса.
  2. Извлеките файл с помощью объекта XmlHttpRequest (вам все еще может понадобиться добавить метку времени в зависимости от сервера).

Так что я делаю этот маленький проект, и у меня есть некоторые проблемы с ловлей. Одна вещь, которая не работает, это то, что браузер продолжает кэшировать файл json, содержащий данные сохранения, и когда я обновляю json где-то еще, браузер возвращается к старой версии файла json, которую он кэшировал, и считывает ее. К сожалению, я не хочу этого. Я не хочу, чтобы браузер вообще кэшировал файл, чтобы каждый раз, когда он загружал страницу, он запрашивал у сервера файл json и действовал в соответствии с этим файлом, а не с любым файлом, который он кэшировал. Однако я хотел бы иметь возможность кэшировать все остальное, что есть на странице, но если это должно быть принесено в жертву, чтобы это сработало, то это жертва, которую я готов принести. Я предполагаю, что в JavaScript будет вызов, который скажет «сбросить текущий файл json» и снова запросить его у сервера или что-то в этом роде.

<script src="mySaveFiles.json" cache="no"> 

или что-то в этом роде, чтобы помочь мне достичь того, о чем я говорю ... помочь?


Один из моих любимых - просто htaccess (если это возможно для вас, я не вижу этого)

Отключить кеш для нескольких расширений

<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi|json)$">
    Header unset Cache-Control
</FilesMatch>

Отключить кэш только для одного расширения

<Files .json>
    Header unset Cache-Control
</Files>

Я нашел это здесь: http://www.queness.com/post/5421/17-useful-htaccess-tricks-and-tips


если вы не хотите кэшировать какие-либо данные, вы можете использовать метатег ниже

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">




caching