Лабораторная работа: Технология AJAX
// событий
this. http. onreadystatechange = function() {
// 4 - данные готовы для обработки
if (http. readyState == 4) {
fill(select_id, http. responseText);
this. working = false;
}else{
// данные в процессе получения,
// можно повеселить пользователя
// сообщениями
// ЖДИТЕ ОТВЕТА
}
}
this. working = true;
this. http. send(null);
}
if(! this. http) {
alert('Ошибка при создании XMLHTTP объекта! ')
}
}
Как видно, в начале мы получаем XMLHTTP-объект с помощью функции get_http(). Затем поисковый текст кодируется в стиле URL и формируется GET-запрос к серверу. URL запроса в данном случае будет выглядеть приблизительно так: http://localhost/cgi-bin/xmlhttp. cgi? text=...
Скрипт на сервере, получив значение text, делает поиск в таблице и отсылает результат клиенту. В обработчике событий объекта XMLHTTP, когда данные от сервера получены и готовы к использованию, вызывается функция fill('select_id', 'data'), которая заполнит список SELECT полученными данными.
Функция get_http() - это кросс-браузерная реализация получения объекта XMLHTTP (в каждом браузере он получается по-своему). Её реализацию с комментариями вы можете легко найти в интернете, это, так сказать, пример из учебника.
function get_http() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2. XMLHTTP");