AJAX - хорошо забытое старое. |
Здравствуйте, гость ( Вход | Регистрация )
AJAX - хорошо забытое старое. |
Jun 4 2006, 08:46
Сообщение
#1
|
|
Junior Member Группа: Banned Сообщений: 6 Регистрация: 4.6.2006 Пользователь №: 29774 |
Многие рунетовские сайты сообщают о новом “загадочном” AJAX’e, в то время как за границей уже кое-кто перешел на эту технику. За примером далеко ходить не надо, небезызвестный Google уже давно использует AJAX. Что ж, мы тоже отставать не будем. В этой статье мы пока не будем писать ничего сверхъестественного, я лишь объясню основы использования AJAX’a, чем он является на самом деле, зачем он нужен и зачем он не нужен. Поехали…
Известная поговорка гласит: “Новое - это хорошо забытое старое”. AJAX (Asynchronous Javascript And XML) - Асинхронные Javascript И XML, это использование js и xml, скажем так “под другим углом”. То есть Ajax приложения - это те, которые асинхронно получают XML данные посредством JavaScript. И конечно же нельзя не упомянуть о самом сердце AJAX’a - это объект XMLHttpRequest и его аналог от Microsoft - ActiveX. В их суть мы вникать не будем, лучше давайте разберемся с определением “асинхронно”. “Асинхронность” - антоним слова “синхронность”, и я приведу простой пример работы с веб-страницей, чтобы понять различие этих двух определений. Допустим, у нас есть страница, на которой расположены несколько элементов, включая скриптовые (script) и стилевые (style) теги. При синхронной пересылке данных скриптовый тег должен быть интерпретирован раньше, чем следующий за ним элемент. Получается, что этот элемент зависит от скрипта, точнее от его выполнения. Стилевые теги и ссылочные элементы в заглавной части документа создают тот же самый эффект. Их нужно интерпретировать один за другим, в то время как остальные элементы ждут своей очереди. После завершения обработки этих элементов, теги в body-секторе могут использовать параллельные подключения для того, чтобы помочь системе ускорить процесс загрузки. Обычно сервера управляют 2-4 параллельными подключениями. То есть от 2 до 4 изображений или других элементов могут загружаться параллельно. Но проблема остается - до этого процесса система должна интерпретировать все в области head, что иногда очень замедляет загрузку страницы. Асинхронная загрузка отличается тем, что процессы загружаются независимо друг от друга, поэтому главные элементы веб-страницы уже не ждут своей очереди. Получается это потому, что мы стараемся не использовать JavaScript в начале, а потом просто впихиваем все теги из области head, в том числе JavaScript и CSS, в объект XMLHttpRequest. Следовательно, используются параллельные подключения и загрузка страницы ускоряется. Все просто. А вот теперь пора вникнуть в суть объекта XMLHttpRequest. Он был впервые был реализован компанией Microsoft в виде объекта ActiveX, который мы так старательно отключаем в своих браузерах. Сейчас он уже доступен во всех браузерах Mozilla и Safari. Этот объект представляет собой набор API функций, используемый в JavaScript, VBScipt и т.п. для передачи данных XML по протоколу HTTP. Главная “фишка” этого объекта - осуществление HTTP запросов к серверу без необходимости перезагружать страницу, что и является основой AJAX’а. Но. Объект может работать только с теми файлами, которые находятся в том же домене, что и использующая XMLHttpRequest страница. Ладно, хватит с нас теории, перейдем к кодингу. Сейчас я покажу и объясню как для обновления страницы получить XML файл с помощью AJAX’a. Но хочу предупредить, что для лучшего понимания вам потребуются хотя бы элементарные знания HTML и JavaScript. Для начала надо создать сам XML файл с нашими данными. Назовем его data.xml. Поздравляю! Вы научились технике AJAX. Сейчас мы создадим простенькую веб-страничку, содержащую данные для примера. Назовем этот файл ajax.html. Разработка веб приложений с помощью AJAX’aЭта страница демонстрирует использование AJAX’a для обновления содержания страницы. Это данные по умолчанию. this.style.display=’none’; return false”>Обзор XML данных.
|