![]() |
Статья: AJAX
Приветствую всех тех кому эта статья поможет решить определенную задачу, и всех тех критиков кому эта статья покажется банальщиной. Эта статья расчитана для тех кто впервые услышал слово AJAX!
А чтобы умные люди не считали что зря потратили время открыв данную статью, рекомендую полазить по данному форуму, много чего интересного! И так, все те кто остался ! Еще раз здравствуйте! Что такое AJAX - Asynchronous Javascript And XML. AJAX - технология возникшая довольно-таки давно и одним из первых кто интенсивно начал ее использование - это gmail.com.AJAX позволяет создавать странички которые не перегружаются для отображения измененного содержания, или обновления базы данных. Другими словами, с помощью AJAX можно довольно-таки не сложно создавать Веб-Страницы напоминающие своим использованием обычные программы. В данной статье мы с вами создадим 4проекта: 1. Страничка с ссылками которая будет менять содержимое определенной области по нажатию на ссылку. (что-то похожее окна с фреймами) 2. Страничку входа в сайт, которая проверит валидность имени и пароля и выдаст сообщение об ошибке или переведет на другую страницу. 3. По просьбе одного читателя форума, 3 динамически заполняемых списка, учитывая что списки каждого следующего будут зависить от выбранного элемента в данном списке. 4. Отправка сообщения на E-mail с сайта. Для освоения данной статьи требуется не высокий уровень знания JavaScript и PHP. Я не буду углубляться в синтаксис и описание команд PHP, а буду вставлять лишь общий коментарий блока кода. Мы так же не будет создавать свой класс в JavaScript для обработчика AJAX в данной статье. И так, как говориться, вперед! Проект 1 Страница с динамически обновляемой областью не использую IFRAME и FRAME. Для начала проекта создадим 4 файла: index.html, news.html, contact.html, services.html. Файл index.html - будет основным и из него будут подгружаться страницы с статическим содержимым: news.html, contact.html, services.html Структура файлов news.html, contact.html, services.html будет почти одинаковой, заисключением содержимого тега H1: Содержимое файла contact.html: Код:
<h1>Связь</h1>Код:
<h1>Услуги</h1>Код:
<h1>Новости</h1>Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">Прошу обратить внимание на DIV с ID - Body, эта та часть страницы, которая будет обновляться. Больше всего нас тут интересует часть между тегами <script>: Код:
<script type="text/javascript">Полетели разбираться в этой куче! Самое первое Код:
var ajax;Затем вызываем функцию Init() Код:
InitAjax();Код:
function InitAjax()Microsoft.XMLHTTP - поддерживается всеми версиями Internet Explorer. Msxml2.XMLHTTP - поддерживается версиями Internet Explorer 6 и выше. XMLHttpRequest - поддерживается всеми остальными обозревателями (Firefox, Opera, и другие). Структура try...catch имеет следующий синтаксис. Код:
tryДалее рассмотрим функцию GetPage(). Данная функция будет настраивать наш ajax и посылать запрос. Код:
function GetPage(page) Ползем дальше Код:
ajax.onreadystatechange = GotResponse;Далее все намного проще: Код:
ajax.open("GET", page, true);Код:
ajax.send(null);Фух. Передых на 5 минут! :beer: Код:
function GotResponse(v)0 - стоит и курит тихо в углу (ajax только что создали и еще ничего не попросили сделать) 1 - загружаем ajax работкой 2 - загрузили ajax работой 3 - пытается наш ajax все наши просьбы удовлетворить 4 - удовлетворил Нам нужен будет только статус 4, для этого в функции и стоит проверка: Код:
if (ajax.readyState == 4) { }Описание результата работы ajax можно найти в переменной: statusText. Примеры содержимого: Not found или ОК соответственно. Далее в нашей функции мы и проверяем на то, как ajax справился: Код:
if (ajax.status == 200)Ajax так же имеет переменную responseText, которая содержит ответ сервера на попытку вызова страницы. Проще говоря, мы попросили открыть его определенную страницу и если все прошло хорошо, то содержимое данной страницы (после обработки сервером, если это PHP или Perl, или нечто похожее) будет у нас в переменной responseText. Ну, а если ajax вернул другой ответ от сервера (не 200), то просим его показать его с описанием ответа. Код:
ajax.abort();Вот вообщем и все для начала! Это моя первая статья, жду ваших пожеланий, коментариев, и все что хотите мне сказать! Специально для NoWa.cc от OlegRom aka ::: XD ::: |
Re: Статья: AJAX
:shock: уоу
|
Re: Статья: AJAX
чтобы это значило? ;)
|
Re: Статья: AJAX
На мой взгляд очередной замут типо в печенках сидящего java-script
|
Re: Статья: AJAX
Цитата:
JavaScript сила! Сейчас выиграет тот, кто научится это использовать. Сам сейчас работаю над проектом, где более 2000строк(не предел!) кода на JS, классы, методы, инициализация обьектов... Все работает на стороне клиента, данные отсылаются на сервер где стоит Apache/mysql/php Скорость работы потрясная! HTML работает как десктопное приложение! :super: ... Mikrosoft вырыл себе могилу создав в 1999году xmlHTTPrequest ! лет через 5-7 большинство программ будет работать удаленно. познакомтесь с google, они сделали первый рывок в этом направлении... теперь они просто миллиардеры! Мы выучив ajax станем миллионерами... :shock: |
Re: Статья: AJAX
AjaX эм вообщем то это не просто java script это решение экономии трафика и если всё дивно верстается то и напряги большой нету.
К тому же это оооочень рекоммендуемая система в любом шаблоне и в любом текстовом сайте найдётся выгодное назначение. В общем используйте и не жалуйтесь на яву :) Спасибо за статью как раз хотел искать документации по этому поводу! :) "Мы выучив ajax станем миллионерами..." Ну это ещё и правильно использовать нужно с толком и трезво :) иначе как стояли на месте передвигаясь по милиметрам то назад то вперёд так и будем стоять :) |
Ответ: Статья: AJAX
Доброе время суток..
Народ а где мона взять учебники по ajax.. |
Ответ: Статья: AJAX
anglish or russian?
|
Re: Статья: AJAX
Насколько я слышал, чтобы использовать Ajax, надо установить на сервер какую-то тулзу. Причем их много разных вроде.
Что за они, и где можно взять, подскажите пожалуйста. |
Ответ: Статья: AJAX
Цитата:
Perl, PHP, ASP, JSP, NET ... что хочешь! В этом и сила, всё основано на уже освоенных технологиях. Так как обмен информацией происходит в XML (реже TEXT), то лучше использовать серверную технологию с поддержкой XML Многие работают с Java, но проще и доступней PHP, тем более там с поддержкой XML всё в порядке:cool: |
Ответ: Статья: AJAX
да впринципе даже ничего не надо устанавливать. в статье там ничего не упомянуто про серверные технологии, AJAX это технология которая работает на клиентском компе.
|
Ответ: Статья: AJAX
Цитата:
javascript локально, а xml служит для передачи данных, данные формируются на сервере, исходя из того, что прислано на сервер. Например xmlHttp.open('GET', 'test.php?id=1', true); a на сервере <?php // для примера ответ в текстовой форме! if(1 == $_GET['id']) echo 'Hello world!' ?> и теперь приняв ответ от сервера можно с ним, что то делать, например alert(xmlHttp.responseText); Вообще то надо было бы статью продолжить, и описать подробней серверную часть :cool: |
Ответ: Статья: AJAX
Цитата:
AJAX - совокупность технологий, об этом надо помнить :) |
Ответ: Статья: AJAX
OlegRom, что-то я скопировал код со статьи, и браузер все время пишет ошибка. Может чего-то не хватает в ПО?
|
Ответ: Статья: AJAX
Разобрался, что не работало: надо было в проверке вместо
if (ajax == 0) делать if(ajax == null). Это ж объект. Теперь такой глюк: Пробовал на 2-х ПК ajax.status = 0, а не 200. А если страница не найдена, то 2, а не 407. |
| Текущее время: 15:48. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc