#8 Запрет каширования AJAX (JQuery)
Возникла проблема, использую ajax для обработки данных -а именно: редактирование и сохранение файлов (шаблонов и т.д), так вот:
редактирую файл - жму сохранить - обработчик выдаёт "Всё пучком хозяин, я сохранил", лезу в редактор - там открыт этот файл - редактор говорит, что докумен обновлён - предлогает показать обновлённый - соглашаюсь, а там без изменений.
Оказалось - кеширование (причём тока на IE, Opera, FF - всё пучком), начал разнюхивать и вот:
функция jQuery $.ajax в качестве одного из аргуметнов принимает параметр cache (Boolean). Если cache=false, то jQuery автоматически добавит к запросу уникальный параметр (тот же timestamp). То есть приведенный выше код можно записать следующим образом:
Цитата |
$.ajax({
type: "GET",
url: "/users/list",
cache: false,
/* ... */
}); |
Тут подводный камень в том, что если используется POST вместо GET, то jQuery опускает этот самый уникальный параметр за (якобы) ненужностью. То есть, если запрос посылается через GET, то можно смело использовать cache: false, но если запрос — это POST без параметров, то придется добавлять что-то типа data: { tstamp: new Date().getTime() }.
|