Навіщо вам AJAX
XmlHttpRequest можна замінити більш простою конструкцією, встановивши значення атрибуту src='script.php' у стандартному Javascript.
Навіщо AJAX?
До харонів – хоронимо! (с) О.Вознесенський
Основне завдання AJAX'а – прискорювати завантаження HTML-сторінок. У «звичайному» HTML'і, без AJAX'а сторінки перевантажуються надто часто, у справі та без діла. Наприклад, ви терпляче чекаєте секунд 10-15, доки відкриється здоровенна сторінка Бабра; потім набираєте в полі пошуку сайтом слово, натискаєте кнопку «Шукати». і знову чекаєте 10-15 секунд, щоб отримати ту саму сторінку з доданим написом: «Шукане слово не знайдено». AJAX дозволяє надіслати запит на сервер, отримати відповідь і записати його прямо у відкриту сторінкубез перезавантаження.
Серед 1600 сайтів Іркутська нам зустрівся тільки один приклад використання цієї технології: iktport.ru (новий сайт Аеропорту). Там за допомогою AJAX'а оновлюються розклади прильотів-вильотів. Розклад перемальовується, а решта сторінки при цьому не перевантажується. Виглядає дещо незвично, таємниче:

кілька секунд у центрі сторінки порожнє місце, а потім раптом! - І з'являється розклад. Але при поганому зв'язку ці «кілька секунд» можуть затягнутися (м-так. десь я щось схоже чув, про «кілька секунд вічних мук у пеклі»), а користувач може і не знати нічого про хитру технологію AJAX і подумає , що сторінка так і має бути порожньою посередині (дизайн такий), і, знизавши плечима, спокійно піде на наступну сторінку.
В даному випадку доречніше було б застосувати більш звичайну та стару, перевірену технологію HTML -iframe (вікно всередині веб-сторінки з текстом іншої сторінки). Тим більше, що основа AJAX – метод XmlHttpRequest працює не у всіхбраузерах, і програмісти все одно повинні передбачати цей випадок його заміну фреймами (iframe). На сторінці з кадрами при поганому зв'язку користувач, принаймні, бачить, що браузер продовжує щось вантажити, а при роботі AJAX'а браузер виглядає так, ніби нічого не відбувається (це, власне, і є головним козирем AJAX' а). Теоретично iframe повинен вантажитися довше, ніж текст через AJAX, але практично початок тексту у кадрі з'явиться раніше (і користувач зрозуміє, що завантаження продовжується), ніж AJAX повністю завершити свою роботу; і чим більше розмір тексту, що завантажується в змінну частину, тим менше сенсу застосовувати AJAX.
і атрибут onchange у елемента ІПН форми, що запускає цю функцію при введенні ІПН і переході до іншого елемента:
А файл inn.php, що викликається атрибутом src, виглядає зсередини ось як:
Чи не так, це виглядає простіше, ніж Subsys_JsHttpRequest? Зрозуміло, для доступу до бази даних потрібен ще й файл config.php, але його я викладати боюся: адже там пароль, частина структури бд MySQL і таке інше. Загалом, на кожному сайті цей файл має бути свій, унікальний (і він також зовсім невеликий: 4-5 стандартних рядків підключення до бд). На сайті vostsibspravka.ru динамічний скрипт використовується наприклад, для «живого пошуку» або для установки параметра - кількості результатів пошуку. Передача українських літер у запиті до сервера при правильних налаштуваннях apache/PHP відбувається без використання додаткових бібліотек або функцій перекодування (які також обтяжують «класичний» Subsys_JsHttpRequest).
Ідея у чистому вигляді працює не у всіх браузерах, тому що, мабуть, вона заснована на «дірці», якоїсь недокументованої можливості, а «суворі», надмірно правильні MAC'овський Safari таЛінуксовий Konqueror ігнорують динамічне створення SCRIPT. Крихітна чорна цятка на білої стрункої конструкції. Задля вирішення цієї проблеми в Subsys_JsHttpRequest і був включений той, кого ідея мала вбити - XmlHttpRequest. Замкнене коло: погано і чорна цятка, і самогубство ідеї «чистого»SCRIPT. Тут необхідно шукати якийсь третій шлях (або другу логіку – із «законом виключеного четвертого»).
01.06.08: Safari 3.0 (522.11) – технологія SCRIPT працює, Konqueror 3.5.3 – як і раніше не працює.
* Власне, через ці createElement і appendChild всі розробники і згадують про XML при звуках слова AJAX. Але ці методи, строго кажучи, відносяться не до області XML, а до технології DOM - Document Object Model (об'єктна модель документа), яка в даній частині є спільною для XML та сучасного HTML4 (не кажучи вже про новий XHTML1).