www.Litecode.ru – Сборник рецептов для создания сайтов

Ajax на jQuery

ГлавнаяJavaScript → jQuery ajax

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

За период освоения данной технологии, я повстречал и перепробовал много реализаций. Все они хороши, но больше всех меня устраивает ajax реализованный на библиотеке jquery. В принципе, любая реализация, представляет собой некую оболочку с удобным набором функций. Классический вариант ajax имеет ряд недостатков и требует изобретения велосипеда, и это совсем другая история.

Лично я начал эксперименты над ajax с версии библиотеки jquery-1.2.6.js, но пример приведу с использованием последней на сегодняшний день - jquery-1.4.2.js.

Итак, допустим речь идет о некоторой странице с фотогалереей, развлекательного портала с хорошей посещаемостью. И требуется возможность вести голосование, причем отдельно для каждой. Перегружать каждый раз страницу для сабмита формы – не вариант. Слишком возрастет количество запросов. Через ajax все решается очень просто.

<script src="../jquery-1.4.2.js" type="text/javascript"></script>
<script>
function setCount(id){
	
	var result = (function () {
		var val = '';
	
		jQuery.ajax({
			'async': false,
			'global': false,
			'data':{'id':id}, 
			'url': "/cgi-bin/set-count.pl",
			'success': function (data) {
				val = data;
			}
		});
		
		return val;
	})();
	
	if(result){
		
		alert(result)
		
	}
}
</script>

Публичная функция setCount принимает параметр, ID фото. Далее с помощью анонимной функции делаем ajax запрос через класс jQuery и результат запроса присваиваем переменной result. В результате может быть все что угодно, например html код. Дальше делаем с результатом что нам необходимо.
Переменная data передает хеш с параметрами запроса.
Переменная url – путь к исполняемому скрипту.
Параметры можно так же передать и в строке запроса через переменную url, например так: "/cgi-bin/set-count.pl?id=34§ion=1". В случае удачного запроса выполняется функция и получаем результат.

Если будут проблемы с кешем, он очень просто сбивается. Ставите в хвост запроса генератор рандомных чисел и все.

   'url': "/pcgi/set-count.pl?"+Math.random(), 

Удачи!