Привіт, шановні читачі блогу LifeExample. нарешті мене відвідало натхнення і я готовий порадувати вас новим, великим і корисним матеріалом для початківців web-майстрів. У цій статті мова піде про золотий технології AJAX і прикладах скриптів. написаних на її основі.
Попереджаю! Ця публікація буде дуже об'ємною, тому запасіться терпінням і приготуйтеся слухати змістом розглянутих в ній прикладів:
- Технологія AJAX приклад №1 - найпростіший приклад, для ознайомлення з азами AJAX.
- Технологія AJAX приклад №2 - відправка даних на сервер засобами AJAX.
- Технологія AJAX приклад №3 - відправка структури даних з сервера у вигляді XML і робота з ними на стороні клієнта.
Поєднавши всі ці AJAX приклади воєдино, ми отримаємо реалізацію обміну даними по AJAX технології з форматом XML.
Давайте приступимо до великої і трудомісткою роботі. Але спочатку ознайомтеся з невеликим введенням.
За інтерактивністю майбутнє!
Дати користувачу свободу дій - і не перезавантажувати сторінку, стало можливим з розвитком і впровадженням AJAX технології.
Концепція технології AJAX
Як ви вже зрозуміли, ця "золота" технологія дозволяє нам обмінюватися даними меду браузером і сервером у фоновому режимі, без оновлення сторінки. Говорячи по-розумному, цей обмін є асинхронним.
Під асинхронність в програмуванні я розумію процес виконання другорядного дії, не припиняючи основне.
Під асинхронність щодо AJAX можна уявити, що першорядним дією є процес відображення сторінки браузером. А другорядним - обробка запитів користувача сервером. У момент виконання операцій на стороні сервера, завдяки Аяксу, браузер чекає відповіді, не обмежуючи роботу користувача зі сторінкою.
Отже, концепція така: між браузером і сервером не перестаючи відбувається обмін даними, які:
- Вводяться в браузер засобами призначеного для користувача інтерфейсу;
- Відправляються на сервер;
- Обробляються на сервері, можливо, заносяться в БД;
- В цей час браузер очікує повернення відповіді;
- Поки браузер чекає, він не припиняє роботу користувача;
- Дочекавшись даних від сервера в певному форматі, обробляє їх і виводить в контент HTML сторінки.
Ви можете поспостерігати представлений процес на схематичною ілюстрації роботи описуваної технології.
Залишилося згадати важливий момент: дані циркулюють між сервером і браузером, повинні відповідати певним правилам форматування. Такі правила зазвичай описують два формати:
У рідкісних випадках можна обійтися вільним текстовим форматом передачі даних, але це швидше виняток.
XML для AJAX
Трохи пізніше ми розглянемо роботу AJAX. з використанням даних в форматі XML. А поки давайте розберемося, що ж таке XML формат.
По-друге, синтаксис XML дуже схожий на всім нам відомий HTML.
Ось приклад HTML розмітки:
Марк, спасибі за статті, все дохідливо і корисно. Я б поправив:
1. AJAX - не самостійна технологія, а концепція використання декількох суміжних технологій (або підхід).
2. І по тексту: «Трохи пізніше ми розглянемо роботу AJAX, з використанням даних в форматі XML. А поки давайте розберемося, що ж таке XML формат. »Логічно« Трохи пізніше ми розглянемо роботу AJAX, з використанням даних в форматі JSON ».
Так, AJAX це зв'язка різних технологій, але в сукупності, це окрема технологія. AJAX - технологія динамічного оновлення сторінки.
За другим зауваженням, я імелл на увазі:
Трохи пізніше, в рамках даної статті, ми розглянемо роботу AJAX, з використанням даних в форматі XML,
а поки давайте розберемося, що ж із себе представляє XML.
Привіт, Mark, я так само хочу подякувати Вам за таку прекрасну стару. До цього довго шукав що-небудь, для комплексного і чіткого розуміння технології AJAX, але в більшості статей, знайдених мною, я не міг зрозуміти нічого більш структурного уявлення технології.
У мене виникло питання. Так як я ніколи не працював з XML, і взагалі не сильно добре зрозумів його суть.
запис на php:
$ String = 'Змінна типу string';
еквівалентна висловом на XML:
Змінна типу string?
І для чого потрібно передавати відповідь сервера в AJAX за допомогою XML, якщо можна передати це одним рядком і потім її розділити за допомогою explode (), наприклад. Або ж перед відправкою взяти масив, і перетворити його в рядкове представлення за допомогою serialize (), а передавши в документ, назад обробити за допомогою unserialize ()?
Поправте мене, чи-ж я все таки щось зрозумів не так.
Заранее спасибо =)