#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() }.
|