Как сделать недействительным кеш при изменении страницы через Ajax? - PullRequest
3 голосов
/ 26 октября 2009

У меня есть страница, которая имеет некоторые редактируемые функции, которые обновляются через Ajax при редактировании. Есть некоторые значения, которые хранятся в cookie, чтобы их можно было загружать при загрузке страницы. Если пользователь вносит изменения, затем переходит на другую страницу и нажимает кнопку «Назад», чтобы вернуться, исходная страница загружается из кэша без новых значений. Если пользователь обновляет страницу, изменения загружаются из файла cookie и отображаются правильные значения. Могу ли я сделать кеш недействительным при динамическом изменении страницы? Я хочу иметь возможность использовать кеш браузера, поэтому я не хочу, чтобы страница всегда делала кеш браузера недействительным, если я могу помочь. Любые рекомендации приветствуются.

Ответы [ 3 ]

1 голос
/ 19 декабря 2009

Во-первых, вы можете загрузить свои данные через Ajax.

 $(document).ready(function(){
     $.get("your_ajax_url");
 });

Затем, когда вы нажимаете кнопку «Назад», повторяется вызов ajax, и на стороне сервера вы отправляете ответ http с правильно установленными заголовками кэша или Etag.

0 голосов
/ 22 декабря 2009

Вы можете написать так

$.ajax(
    {
        url: 'Serverpage name'
        cache: false,
        type: 'POST',
        success: function(msg)
        {
        });
    });

Здесь настройка cache: false, не будет устанавливать кеш.

0 голосов
/ 26 октября 2009

Вам необходимо установить заголовки кэша в ответе HTTP.

В зависимости от вашей технологии вы можете сделать это на веб-сервере (например, на основе рассматриваемого URL-адреса) или в своем коде (например, установить заголовок, используя вашу платформу или какой-либо вызов API).

В частности:

no-cache
expires

Это те, которые вы хотите.

...