AJAX (Асинхронный JavaScript + XML)

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP
Красносельский
Константин
Константинович

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Компьютер и программы

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Веб-дизайн

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Справочники

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Документация по CSS1

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Настройка файла .htaccess

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Коды ошибки http сервера

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Подстановочные символы и регулярные выражения

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Спецификация файла robots.txt

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP SSI – Server Side Includes

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Таблица кодировки символов кириллицы

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Нестандартные символы в HTML

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Вторая таблица символов HTML

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Советы начинающим

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Советы начинающим Веб-дизайнерам: Что, где и зачем.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Правила плохого тона

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP WEB-уловки

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Камень предкновения: верстка таблицами или блоками?

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Рекомендации по разработке веб сайта

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Анализ WEB-конъюнктуры. Создание лучшего сайта и его раскрутка.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Анализ WEB-конъюнктуры

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Предисловие

Приручение поисковых машин

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Уровень документа - все гениальное просто

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Благоустройство нор для поисковых червей или как водить пауков по нашей паутине

Ускорение индексации сайта

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Если гора не идет к Магомету

Индекс цитирования

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Что это такое и с чем его едят

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Приобретение веса в глазах общественности

Послесловие

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Последние замечания по интернет-раскрутке

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Приложения

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP А: «Рекомендации лучших пауководов»

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Краткий комментарий.

Советы специалистов поисковой системы Rambler.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Использование файлов robots.txt.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Часто задаваемые вопросы.

Советы специалистов поисковой системы Aport.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Регистрация сайта в Апорте.

Советы специалистов поисковой системы Yandex.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Добавление страниц

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Индексирование

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Положение страницы на выдаче

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Поиск со своей страницы

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Ответы на часто задаваемые вопросы

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Б: «1000 сверх-сайтов Рунета»

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP 1000 сверх-сайтов Рунета

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP В: «Сто наиболее популярных поисковых слов»

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Сто наиболее популярных поисковых слов

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Г: «Где это сделать?»

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Где это сделать?

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Д: «Практическое руководство!!!»

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Краткий комментарий.

Окна, ссылки и меню.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Ссылки и окна. Внешний вид и внутреннее содержание.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Организация ссылок. Всевозможные оглавления.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Если вам не нравятся фреймы, значит, вы не умеете их готовить.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Меню из выпадающих списков (javascript и CSS).

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Многоуровневое раскрывающееся меню (javascript и CSS).

Работа с базами данных.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Обработка баз данных браузером посетителя

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Обработка баз данных сервером (PHP)

Взаимодействие с посетителем

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Отправка писем с веб-страницы.

Формы

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Методы форм.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Создание на сайте PHP голосования.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Регистрация и контроль посетителей (PHP).

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Интерактивность материала.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Создание гостевой книги на PHP.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Удаление записей из текстовых баз (PHP).

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Заргузка файлов на сервер по HTTP-протоколу (PHP).

Разное.

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Псевдослучайные элементы (PHP, javascript).

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Точное определение имени и версии браузера с помощью JavaScript, SSI или PHP

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Клоакинг и технология «Входных дверей».

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Отложенное выполнение и выполнение с заданным интервалом (javascript)

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Информация о размере, дате, собственные счетчики и протоколы посещений

 

 

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Консультации

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Экспорт и импорт новостей

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP PHP chmod – права доступа к файлам

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP WEB 2.0 – миф, или реальность?

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Давно забытый AJAX

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Способы хранения веб-страниц: документы FrontPage или базы данных

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Как заработать на своем сайте?

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP FTP клиент, как настроить Total Commander

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Мониторинг веб сайтов и анализ поисковых запросов

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Документация по Веб-дизайну

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Желающим скачать PHP скрипт или JavaScript

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Литература и поэзия

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Гуманитарные науки

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Хронология материалов

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Обращение к посетителям

Шрифт Font Шрифты Fonts скачать Скачать шрифты

Реферат по психологии религии логике информатике. рефераты контрольные курсовые работы скачать на халаву психология религия информатика халява логика контрольная курсовая работа Скачать рефераты

Сайты достойные внимания: Web-дизайн программирование документация руководство книга для любителей музыки статьи о создании музыки с помощью компьютера обзоры музыкальных программ музыка в mp3 формате Крымский тур-оператор Фонд «Боспор» Боспор Керчь фестиваль Боспорские агоны рекламная фирма кондиционер частный отель «Казантипская хижина» Азовске побережье Керченского полуострова Украина Крым Достойно внимания

Создание web сайта на заказ Создание web сайта на заказ

Создание, разработка web сайта на заказ. WEB-design Создание веб сайтов (цены)

web Сайты, созданные Красносельским К. К. Веб-дизайн разработка сайтов на заказ. WEB-design Веб-сайты, созданные мной (потенциальным заказчикам)

Полезные ссылки Полезные ссылки

Красносельский К. К. Компьютер Windows DOS система реестр BIOS программы Веб-дизайн PHP Perl CSS HTML CGI Java JavaScript музыка поэзия стихи тексты песен Психология философия психоанализ психиатрия логика сознание разум мышление интуиция развитие человек реферат религия информатика Об авторе

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Статистика сайта

Показать фреймы

 

Web На сайте

 

 

ТаблицейБлоками.

AJAX (Асинхронный JavaScript + XML)

Последняя модификация: 04.07.2008 г

Страница загружена с адреса: http://webdesign.site3k.net/consulting/ajax.html

Давно забытый AJAX

  1. Суть технологии AJAX
  2. Истоки AJAX
  3. Современное состояние AJAX
  4. Альтернативы AJAX
  5. Область применения AJAX
  6. Примеры применения AJAX

Технология AJAX (Асинхронный JavaScript + XML), являющаяся одной из основных технологий, лежащей в основе, так называемого, WEB 2.0, была известно еще, чуть ли не, со времен каменного века. Однако, благодаря появлению термина AJAX, который ввел Джис Джеймс Гаррет (Jesse James Garrett), она стала необычайно модной. И если раньше, о ней могли говорить только наиболее продвинутые программисты, то теперь, благодаря появлению специального термина, сказать о ней может каждый, кому не лень. Достаточно просто произнести «AJAX», и ты уже о ней говоришь.

Суть технологии AJAX

Суть технологии AJAX заключается в изменении содержимого загруженной веб-страницы без ее полной перезагрузки, благодаря чему достигается высокая динамичность сайтов. Технология основывается на разделении данных и подзагрузки тех или иных компонентов по мере необходимости.

Истоки AJAX

Первые приемы динамической подзагрузки данных на WEB-страницу появился в спецификации HTML 4.0 от 18 декабря 1997 года. В этой спецификации впервые были определены:

  • семантика для элемента SCRIPT,
  • элементы IFRAME и OBJECT,
  • элемент FRAME.

Так же, был введен атрибут target для элементов, создающих ссылки (A, LINK), навигационных карт (AREA) и форм (FORM).

В результате этих революционных нововведений, стало возможным, не перезагружая всю страницу, менять часть ее содержимого. Например, целую страницу можно было разделить на несколько фреймов и, указав в одном из них ссылки, цель которых определялась атрибутом target, менять содержимое другого фрейма, не перезагружая оглавления (эта возможность применяется на сайте Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP webdesign.site3k.net). Аналогично можно было поступить с IFRAME и OBJECT, меняя их содержимое щелчком по ссылке (эта возможность применяется на сайте Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP bosportour.com – содержимое гостевой книги заключено в собственном IFRAME, отдельно от оглавления и общего оформления). Благодаря JavaScript, стало возможным еще больше: Произвольно менять SRC рисунков, таблиц стилей и скриптов, загружая новые элементы в уже загруженную страницу и, даже, менять содержимое статического текста (эта возможность применяется на сайте Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP praktika.net.ua – в страницу вставляется выбранный посетителем рисунок и в соответствии с ним меняется подпись к рисунку; применение динамически загружаемых скриптов впервые упомянуто мной в 2003 году на странице Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP http://discoverer.h11.ru/webdesig/menus.html, теперь это Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP webdesign.site3k.net/conjuncture/append/d/menus.html).

Так же, в 1997 году появились Каскадные таблицы стилей (CSS), с их атрибутом display, позволяющим скрывать или отображать отдельные части страницы, что, во взаимодействии с JavaScript, могло мгновенно частично или полностью изменять ее видимое содержимое (применяется в древовидном меню сайта Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP webdesign.site3k.net).

Компании Netscape этого показалось мало и в свой браузер, они добавили тег LAYER, содержимое которого отображалось так же, как содержимое тега DIV, но могло иметь атрибут SRC и грузится из отдельного файла, благодаря чему, не перегружая страницу, можно было загрузить данные, привязанные к ссылке, даже не в отдельный фрейм или OBJECT, а прямо в один из элементов текущей страницы – совсем как это делается сейчас на AJAX.

Просто раньше никому в голову не приходила придумать этому особое название.

Окончательное формирование всех вариаций технологии AJAX произошло в 1998 году, когда в браузере Internet Explorer 5.0 появился новые объекты ActiveX – XMLHttpRequest, DTC, RDC и другие (использование TDC описано на старице Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Обработка баз данных браузером посетителя, для обработки прайсов и применено на Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP cmk.net.ua – если вы используете IE, вам удастся его увидеть). Однако именно XMLHttpRequest приобрел наибольшую популярность и поддержку в других браузерах.

XMLHttpRequest приобрел популярность благодаря тому что, значительно ускорял загрузку данных, позволяя включать в уже загруженную страницу данные любого типа. Его применение позволяло без особых ухищрений вставлять в страницу ответы сервера и, таким образом, использовать технологию AJAX смогли даже люди, не отличающиеся особыми талантами (LAYER от Netscape позволял делать это с еще большей легкостью, но, поскольку последний проиграл войну браузеров, победили именно стандарты Микрософта). Эта популярность вынудила производителей других браузеров включить поддержку XMLHttpRequest в свои продукты (Mozilla Firefox, начиная с версии 1.0, Opera, начиная с версии 8.0, Safari…) и применение AJAX стало повсеместным. Вскоре появился и сам термин. Использование AJAX стало модным и о нем вдруг все заговорили. Произошло это в начале 2005 года и, таким образом, официальное признание технология получила спустя 8 лет с момента появления.

Современное состояние AJAX

Поскольку AJAX – это по сути, только разнообразное применение компонента XMLHttpRequest, то чтобы понять работу AJAX, требуется разобраться с синтаксисом XMLHttpRequest. Сделаем это на примере:

<script type="text/javascript" language="JavaScript">
function doLoad() {
    req=false;
    try { // определить метод поддержки
        req=new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e) {
        try {
            req=new ActiveXObject('Microsoft.XMLHTTP'); // сработает в Internet Explorer
        } catch (e) {
            if(window.XMLHttpRequest){ // сработает в Mozilla и Safari
               req=new XMLHttpRequest();
            }
        }
    }
    if (req){// если какой-то из вариантов поддерживается
       req.onreadystatechange = readystate; // назначим обработчик событию объекта
       req.open("GET", document.getElementById('edit1').value, true); // задать параметры методу open
       req.send(null); // отправить запрос
    }
}
function readystate() {
    if (req.readyState == 4){// если запрос завершен
        if (req.status == 200) { // если он завершен без ошибок
            document.getElementById('content').innerHTML ='<pre>'+req.responseText+'</pre>';
        } else {
            alert("Произошла ошибка "+ req.status+":\n" + req.statusText);
        }
    }
}
</script>
<input type="TEXT" size="50" id="edit1">
<input type="button" value="Через ActiveX" onclick="doLoad()">
<div id=content style="white-space:pre"></div>

И так:

Условие window.XMLHttpRequest определяет, каким образом работает объект в данном браузере (можно добавить проверку, работает ли он вообще и если window.ActiveXObject так же дает ложный результат, данный метод вообще не поддерживается браузером). Затем создается объект одного из поддерживаемых типов, после чего событию onreadystatechange (изменение состояния) назначается обработчик. Так же, назначаются параметры методу open. Первый из них определяет тип запроса: POST или GET, второй определяет адрес (в данном случае адрес берется из значения текстового поля), третий, если истинен, определяет что, запрос должен выполнятся асинхронно, то есть, отправив запрос не ждать ответа сервера, а продолжать работу, ожидая ответа в фоновом режиме.

После всего этого методом send происходит фактическая отправка запроса и, как только от сервера приходит ответ, срабатывает обработчик события onreadystatechange.

При обработке события onreadystatechange нужно проверить код состояния объекта (свойство readyState). Определено 4 состояния:

0 – объект не инициализирован

1 – идет загрузка

2 – объект уже загружен

3 – Загружен частично

4 – завершение загрузки

Как только код становится равен 4, данные сервера можно использовать и выводить в браузер. Однако, не мешало бы проверить, что именно вытащили наши сети, используя код ответа сервера, сохраняющийся в req.status. Если код равен 200 (см. Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP  коды ошибок ВЕБ сервера), данные действительно можно выводить, иначе, можно вывести сообщение об ошибке, сохраняющийся в свойстве req.statusText. Вместо стандартного текста ошибки, можно вывести свой, что удобно сделать, создав массив определений, ключи которого будут соответствовать номерам ошибок:

err[400]=”Запрос содержит синтаксическую ошибку”;

err[401]=”Для доступа требуется авторизация”;

err[403]=”Доступ запрещен”;

и т. д.

Все довольно просто (хотя менять src для IFRAME еще проще). Однако данным методом можно обращаться только к ресурсам того же сайта, с которого закачана запрашивающая страница. Чтобы обратиться к другим интернет-ресурсам, придется использовать серверный скрипт, вроде такого:

<?php
if (! @readfile ($_GET['file'])){
      echo '<font color=red>Файл не доступен</font>';
}
?>

И тут задумаешься: А может послать этот AJAX к чертям и использовать более простой и всеядный IFRAME? Но IFRAME нельзя использовать непосредственно внутри форм. В этом случае, применение AJAX окажется вполне разумным, и будет выглядеть примерно так:

<script type="text/javascript" language="JavaScript">
function doLoad2 () {
    req=false;
    try { // определить метод поддержки
        req=new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e) {
        try {
            req=new ActiveXObject('Microsoft.XMLHTTP'); // сработает в Internet Explorer
        } catch (e) {
            if(window.XMLHttpRequest){ // сработает в Mozilla и Safari
               req=new XMLHttpRequest();
            }
        }
    }
    if (req){// если какой-то из вариантов поддерживается
       req.onreadystatechange = readystate; // назначим обработчик событию объекта
       req.open("GET", 'myscript.php?file='+document.getElementById('edit2').value, true); // myscript.php – это приведенный выше серверный скрипт
       req.send(null);
    }
}
function readystate() {
    if (req.readyState == 4){// если запрос завершен
        if (req.status == 200) { // если он завершен без ошибок
        document.getElementById('content').innerHTML ='<pre>'+req.responseText+'</pre>';
        } else {
            alert("Произошла ошибка "+ req.status+":\n" + req.statusText);
        }
    }
}
</script>
<input type="TEXT" size="50" id="edit2">
<input type="button" value="Через ActiveX и серверный скрипт" onclick="doLoad2()">
<div id=content style="white-space:pre"></div>

Но это не решает всех проблем. Потому что:

  1. При использовании AJAX не срабатывает навигация по ссылкам: заполняя многостраничную форму стандартного образца, вы можете обнаружить ошибку, допущенную на предыдущей странице, и вернутся назад. Если в форме используется AJAX никакой «Назад» не сработает. Аналогичная неудача постигнет, если на AJAX построена вся навигация сайта.
  2. Поисковые роботы не интерпретируют JavaScript и не будут ходить по AJAX ссылкам.
  3. AJAX поддерживается только новыми браузерами, в связи с чем, его поклонники требуют чтобы «Юзеры меняли брузеры». Но, это же наглость. Я, конечно, понимаю что, нет смысла добиваться полной совместимости с браузерами 10 летней давности, но терять часть посетителей только оттого, что вам хочется применить AJAX? Глупо. Для кого вы делаете сайт? Если для себя, то ладно. Если для посетителей, то постарайтесь сделать так, чтобы максимально большее их число смогло им пользоваться.

Однако самая важная проблема AJAX заключается в том что, сохраняя локальную копию загруженного документа, посетитель страницы, на самом деле, ничего не сохраняет! Конечно, если вы хотите заставить его посещать сайт снова и снова, вам это должно очень понравится, но если вы хотите помочь посетителю, вы должны усвоить одну, банальную вещ: AJAX не предназначен для загрузки контента! Загруженный материал является временным и существует только до закрытия браузера, так как он не записывается в текст страницы, а только хранится оперативной в памяти. Посвященный в эти вещи посетитель выделит текст и скопирует в файл, но не посвященный, никогда не поймет, почему, посещая страницу на сайте, он видит одно, а открывая ее локальную копию – другое.

Альтернативы AJAX

Полное отсутствие AJAX

Первой альтернативой является старый добрый серверный скрипт. Код, использующий серверный скрипт, может выглядеть вот так:

<form action="myscript.php">
<input type="TEXT" size="50" name=file>
<input type="submit" value="Только через серверный скрипт">
</form>

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

Но это классический вариант: результат выдается на другой странице, которую придется загрузить полностью. Никакого AJAX.

Чтобы приблизить это к AJAX, можно поместить меняющуюся часть страницы (с формой или без), в IFRAME (например, как сделал я на странице Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP http://kazantip.net.ua/zajavka.html). Но можно пойти еще дальше:

AJAX на старых дрожжах

Как говорилось в начале статьи, технологии AJAX, на самом деле, просто давно забыли и для этой «технической революции» никакой XMLHttpRequest или ActiveXObject не требуются. А значит, приведенный ниже код будет работать В ЛЮБОМ браузере:

<form id=frm action="myscript.php" onsubmit="this.setAttribute('target','myframe');">
<input type="TEXT" size="50" name=file>
<input type="submit" value="Через серверный скрипт в духе AJAX">
</form>
<iframe onLoad="window.document.getElementById('content').innerHTML= myframe.document.body.innerHTML;" frameborder='0' width='0' height='0' name="myframe" id="myframe"></iframe>
<div id=content style="white-space:pre"></div>

Если в браузере не работает JavaScript, событие onsubmit не будет обработано и атрибут target не будут переназначен. В этом, а так же, в том случае, если браузер не поддерживает iframe, данные загрузятся в новую страницу, как при обычном использовании серверного скрипта. Однако, если мы имеем нормальный браузер, поддерживающий HTML 4.0, по нажатию кнопки submit, на сервер отправится запрос. Когда же от туда вернется ответ, сработает событие onLoad в iframe и пришедший текст отобразится в div id=content, как и при использовании AJAX. И, что самое главное, если посетитель сохранит страницу, полученный им текст никуда не исчезнет, так как, вместе с ней сохранится и текст iframe. При открытии сохраненной страницы, этот текст сразу загрузиться и отобразится.

Осталось только придумать этому название, например, JAI (JavaScript and iframe) и гордо трубить об изобретении новой, более совершенной технологии.

Область применения AJAX

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

Например, регистрируешь сайт в Апорте. Появляется 1 страница – вводишь основные данные. Нажимаешь «Далее». Появляется вторая страница, выбираешь страну из большого списка, нажимаешь «Далее». На следующей странице, в соответствии с выбранной перед этим страной, предлагается список городов этой страны. Выбираешь, нажимаешь «Далее»...

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

В такой ситуации AJAX значительно ускорит процесс. Вот только какой AJAX? С использованием ActiveXObject или JavaScript + iframe? Исходя из того что, все, кто понимает недостатки AJAX, пытаются свести их до минимума, добавляя к нему еще и iframe, рекомендую сразу переходить к iframe и не пытаться угодить моде.

Примеры применения AJAX

Для примера, приведу прайс, о котором говорится на странице Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP Обработка баз данных сервером, только теперь, в духе AJAX.

Цене до...($)
Площади от... (м2)
Фирме-производителю

 

Ещё один пример применения AJAX можно увидеть в комментариях к статьям (ссылка «рекомендую читать»).

 

< Предыдущая (Web 2.0) AJAX Следующая (Способы хранения веб-страниц)>

 

Комментарии к странице (всего 12)

 

 

 

Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP

 


На главную страницу сайта Технология AJAX Асинхронный JavaScript + XML PHP пример Microsoft.XMLHTTP XMLHttpRequest Msxml2.XMLHTTP