Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2012, 12:02
Интересующийся
Отправить личное сообщение для ololosh Посмотреть профиль Найти все сообщения от ololosh
 
Регистрация: 25.07.2012
Сообщений: 27

Ajax и кэширование ответа
Проблема в следующем: У меня есть кнопка. По нажатию на нее я аяксом посылаю запрос на сервер. Сервер возвращает мне большой массив. Я на клиентской стороне в кол-бек функции аякса в цикле заполняю табличку пришедшими от сервера данными и показываю ее в модальном окне.
Все это происходило при щелчке на кнопку...
Теперь я закрываю свое модальное окно...и снова жму на кнопку, что бы опять посмотреть на окошко с моими данными.
И вот тут проблема. Происходит ЕЩЕ 1 аякс запрос (я это вижу фаербагом). Сервер заново отрабатывает и возвращает мне те же самые данные (на сервере они редко меняются)
Можно как-то сделать, что бы запрос посылался только первый раз, а последующие разы данные брались из кэша, что ли

$(".konopka").click(function() {

$.ajax({
				url: "app=content",
				type: "POST",
                                cache: true,
				success: function(data) {
                                    //тут обрабатываю пришедшие данные
                                }
});

});
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2012, 12:16
Аспирант
Отправить личное сообщение для Sanda Посмотреть профиль Найти все сообщения от Sanda
 
Регистрация: 12.10.2012
Сообщений: 90

Создаём локальную переменную, в которую сохраняем данные в success запроса. Если переменная не пуста, вызываем callback без запроса к серверу, иначе запрашиваем данные.
(function () {
var cache
  , callback = function (data) {
    //тут обрабатываю пришедшие данные
  };
$('.knopka').click(
  function () {
    if (cache) { //data are already cached -
      callback(cache); //process them
    } else { //no data -
      $.ajax({ //request it,
        //...
        , success: function(data) {
          cache = data; //then save
          callback(cache); //and process
        }
      });
    }
  }
);
}());
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение ответа от функции в которой выполняется ajax Kelly Общие вопросы Javascript 7 10.09.2012 16:23
Обработка ответа после POST-запроса (jQuery - Ajax) battrack jQuery 6 29.07.2012 16:06
Ajax сравнение ответа и строки zercs jQuery 2 23.04.2011 20:53
ajax, завершение функии до получения ответа Slavenin AJAX и COMET 5 05.12.2010 03:23
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54