Я пытаюсь кэшировать контент JSON, сгенерированный php-скриптом из базы данных.Однако набор данных очень стабилен, изменений или дополнений очень мало.Значения данных могут оставаться неизменными в течение нескольких недель.Проблема в том, что он содержит столбец LOB, и для его загрузки требуется заметное время, больше по сравнению с предоставлением json из текстового файла, что означает, что git - это реальный вызов базы данных, который делает его медленным.
Я отображаю данные в таблице с разбивкой на страницы (плагин datatables jquery), и для каждого изменения страницы данные снова выбираются из базы данных, также при переходе на предыдущую страницу.
Я пробовал следующее:
"beforeSend": function (request)
{
request.setRequestHeader("cache-control", "max-age=86400");
},
Не работает.
Я пытался mod_expires:
ExpiresActive On
ExpiresDefault "access plus 4 hours"
ExpiresByType application/javascript "access plus 1 day"
ExpiresByType application/json "access plus 1 day"
Не работает.
Поэтому яПредположим, что все эти настройки предназначены только для реальных файлов в файловой системе, а не для динамически генерируемых файлов?
Я бы предпочел настраиваемый подход, подразумевающий использование Apache / PHP, поскольку у меня не будет полного контроля над сервером.
РЕДАКТИРОВАТЬ ПЕРЕД ПЕРВЫМ ОТВЕТОМ:
Обратите внимание, что JSON содержит несколько записей, поэтому хранилище ключей / значений будет довольно сложно получить.Ключ должен содержать много вещей: выражение запроса / фильтра и запрашиваемую страницу для подкачки.
РЕДАКТИРОВАТЬ 2:
Разработка и прод.Windows ... так что memcached - это не вариант ...
РЕДАКТИРОВАТЬ 3:
Я пробовал решение для kristovaher, но оно не работает.Заголовки кэша не находятся в ответе все время, и после некоторой обработки я считаю, что определил проблему: я должен использовать проверку подлинности NTLM, и при выполнении 2 запросов вскоре после друг друга все работает нормально, однако, если вы немного подождетеПохоже, что пользователь прошел повторную проверку подлинности, а затем заголовок элемента управления кэшем «потерян».