По умолчанию данные, загруженные с сервера (данные в формате JSON или XML) будут сохранены в кеше браузера, но не будут использоваться при следующем запросе. Причина в том, что по умолчанию jqGrid реализует такое же поведение запросов ajax, как cache:false
параметр jQuery.ajax . Это означает, что у всех запросов есть дополнительный параметр nd
, такой как nd=1286296925096
, который является отметкой времени. Это делает URL-адрес всех запросов GET уникальным, поэтому локальные сохраненные данные не будут использоваться дважды. Так что если вы хотите, чтобы jqGrid не использовал данные из кэша локального браузера, вам ничего не нужно делать .
Если вы хотите дополнительно запретить сохранение данных локально (например, по соображениям безопасности или для уменьшения заполнения локального кэша информацией, которая никогда не будет использоваться), вы можете включить директиву no-store в HTTP-заголовок ответа сервера.
Если вы хотите кэшировать запросы сервера и использовать данные, вам следует prmNames: { nd:null}
jqGrid option . Затем данные из следующих запросов могут быть получены из локального кэша браузера. Если вы сделаете это, я рекомендую вам включить в HTTP-заголовок ответа сервера директивы Cache-Control , которые вынуждают использовать нужное вам поведение кэширования. Например, я лично использую Cache-Control: max-age=0
и использую ETag
с хэшем из отправленных данных. Таким образом, все запросы Ajax будут отправлены на сервер для повторной проверки локального кэша. Все запросы будут автоматически содержать If-None-Match
заголовок HTTP с ETag
данными из локального кэша. Если данные не изменены, сервер может ответить с помощью ответа HTTP/1.1 304 Not Modified
без тела вместо HTTP/1.1 200 OK
с телом, имеющим данные. Ответ HTTP/1.1 304 Not Modified
позволяет браузеру использовать локальный кеш.
ОБНОВЛЕНО: Я использую дополнительно Cache-Control: private
, который отключает кэширование данных на прокси-сервере и объявляет, что данные могут кэшироваться, но не передаваться другим пользователям.
Если вы хотите узнать больше об управлении кэшированием в отношении заголовков HTTP, я рекомендую вам прочитать следующее Руководство по кэшированию .