Кеширование ajax запросов jquery

Кеширование ajax запросов jquery. Введение

Кеширование ajax запросов jquery Тема кеширования ajax запросов, является специфической, поскольку в большинстве случаев необходимо получить с сервера или передать ему актуальные данные. Но бывает и такое, что для данных получаемых с сервера, не критична актуальность, в разумных временных рамках, например, в течении часа. То есть, данные, которые присылает сервер, могут быть закешированы на час. Это существенно увеличит скорость отзыва запросов, а также ослабит нагрузку на сервер.

Для отправки и кеширования ajax запросов удобно пользоваться библиотекой jQuery.
Чтобы работало кеширование ajax, необходимо передавать запросы только методом GET, при отправке POST-запросов, кеширование не будет работать. А так же при отправке запроса нужно установить соответствующий флаг. Помимо настройки клиентской части, также необходимо настроить серверную часть — в заголовках скрипта, который отвечает на запрос, нужно задать заголовок «Expires».

// кеш на 1 час
$life_time = 1 * 60 * 60;
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $life_time) . ' GMT');

Этот заголовок будет указывать до какого времени необходимо хранить кеш в браузере. И пока это время не истечет, ответ на ajax запрос будет браться из кеша браузера. Когда время установленное в заголовке Expires истечет, тогда будет отправлен новый запрос на сервер и полученные данные вновь будут сохранены. Помимо конца времени жизни, кеш может быть обновлен, если изменятся параметры, переданные в запросе.

Кеширование ajax запросов jquery. Код

А теперь для наглядности приведу JS код:

var status_ajax_cache = false; // кеш включен/выключен
var revision_ajax_cache = 1; // ревизия кеша

$.ajax({
	url: "/ajax.php", // скрипт, на который будет отправлен запрос
	type: "get", // метод передачи данных
	dataType: "json", // тип данных
	data: {
		"var": var_1, // параметры, передаваемые на сервер
		"revision_cache": revision_ajax_cache // номер ревизии, который можно сменить для обновления кеша
	},
	cache: status_ajax_cache, // статус кеширования. включен/выключен
	success: function(data){
		// код после получения ответа
	}
});
Рассказать друзьям:


Кеширование ajax запросов jquery: 3 комментария

  1. Вообще, конечно, при применении этой технологии надо заботиться о том, чтобы пользователь был предупрежден о начале процесса (колесико) и о его окончании. И блокировались, соответственно, кнопки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*