Запросы Ajax кэша

Вы должны реализовать локализацию в App. Я нашел простой пример для того же здесь .

8
задан John Topley 16 March 2009 в 13:40
поделиться

2 ответа

После того как Вы обновляете страницу, Вы будете все еще делать призывы сервера к содержанию, даже при том, что Вы запросили их прежде. Заголовки PHP не выручат Вас с этим.

Я думаю, в чем Вы нуждаетесь, клиентский механизм кэширования содержания, которое уже требуют от сервера на текущей странице.

Для этого примера использования можно использовать хеш-таблицу в JavaScript и запросе это перед звонком серверу. Это улучшит пользовательский опыт, так как пользователь не должен будет ожидать другого запроса содержания, он уже замечен.

Вот пример:

//placeholder for hash table as cache
var cache = [];

var getPage = function(pageNr){
    if(cache[pageNr]){
        //content is already in cache, use it from there
        handleContent(cache[pageNr]);
    }
    else{
        //object with parameteres sent with GET request
        var params = {};
        params.page = pageNr;

        $.ajax({
          url: "getHTML.php",
          data: params,
          cache: false,
          success: function(response){
            //handle your response here
            handleContent(response);

            //store the response in the cache for later use
            cache[pageNr] = response;
          }
        });
    }
};

Теперь запрос страниц сначала посмотрит в текущем кэше, чтобы видеть, есть ли у Вас содержание. В противном случае это выполнит вызов сервера и сохранит ответ в кэше.

Это подобно пользовательскому опыту при просмотре новостей в Google Finance

ОБРАТИТЕ ВНИМАНИЕ, что, если Вы обновляете страницу, этот кэш будет стерт.

В случае редактирований к странице необходимо будет использовать ссылки Maurice Perry на Yahoo Исключительная Производительность, чтобы удостовериться, что сервер всегда возвращает последнюю версию содержания.

Больше на хеш-таблицах в JavaScript: http://www.mojavelinux.com/articles/javascript_hashes.html

3
ответ дан 5 December 2019 в 14:06
поделиться

Добавьте следующие заголовки на сервер :

    header("Cache-Control: private, max-age=$seconds");
    header("Expires: ".gmdate('r', time()+$seconds));

Где $ секунды имеет очевидное значение.

Также проверьте, не выдает ли ваш сервер другие заголовки защиты от кеширования, такие как Pragma. Если да, добавьте также заголовок «Pragma: cache».

9
ответ дан 5 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: