Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #67, ИЮНЬ 2006 г.

созидательная сила AJAX

ALEXEY SHOCKOV

Спецвыпуск: Хакер, номер #067, стр. 067-052-5


(req.responseJS.auth ? "Вы авторизованы!" : "Вы ввели неправильные данные!");

}

}

}

Библиотека берет на себя все функции формирования запроса и его отправку. В зависимости от тех возможностей, которые поддерживает браузер, автоматически выбирается способ обмена данными с сервером: с помощью объекта XMLHTTPRequest или с помощью элемента SCRIPT.

Теперь обратим внимание на backend-системы — серверную часть. Подключаем серверную часть библиотеки. Без комментариев.

require_once "lib/config.php";

require_once "Subsys/JsHttpRequest/Php.php";

После подключения библиотеки для работы с AJAX необходимо создать объект класса Subsys_JsHttpRequest_Php. Для правильной работы требуется указать кодировку, в которой работает наш сайт, чаще всего это win1251. Далее все идет практически как в обычном приложении без использования AJAX. Переменные, посланные клиентом, берем из массива $_REQUEST, проводим простую проверку пользователя.

// Set page encoding

$JsHttpRequest =& new Subsys_JsHttpRequest_Php("windows-1251");

// Create users array

$users = array(

"vasia" => "ivanov",

"petia" => "vaseckins"

);

// Get query

$u = $_REQUEST['u'];

$p = $_REQUEST['p'];

// Check

$auth = false;

if (array_key_exists($u, $users)) {

if ($p == $users[$u]) {

$auth = true;

}

}

Непривычным может показаться способ отправки данных клиенту — простым формированием хэш-массива $_RESULT. При создании объекта Subsys_JsHttpRequest_Php устанавливается буферизация выходного потока с библиотечным обработчиком данных. Из этого следует, что все выводимое нами в скрипте будет перехвачено библиотекой и окажется доступным на стороне клиента в переменной responseText. Этой возможностью удобно пользоваться для обработки ошибок.

$_RESULT = array(

"auth" => $auth

);

Вот, кажется, и все — наша авторизация готова.

[напоследок] AJAX — важный шаг в развитии идеологии Web 2.0, которая медленно, но верно начинает набирать популярность. Приближение интерфейсов web-приложений к обычным оконным приложениям заставляет пользователя задуматься о выборе, и симпатии людей обернутся в пользу именно web’а. Появление таких приложений, как Google Calendar и Google Maps, существование библиотек для работы с AJAX практически для любого языка, который может работать с сетью, что-нибудь да значат. Так что если мы идем в ногу со временем, то неоднократные встречи с этой технологией нам обеспечены. А что может быть лучше, чем быть подготовленным?

Ссылки по теме

ТИП: WWW

http://dklab.ru/lib/Subsys_JsHttpRequest — библиотека Subsys_JsHttpRequest.

http://gmail.com — web-интерфейс к почте Google. Интересный пример, который применяет технологию AJAX в полной мере.

http://prototype.conio.net - популярная AJAX-библиотека

http://script.aculo.us - еще одна известная библиотека

Назад на стр. 067-052-4  Содержание