четверг, октября 26, 2006

Популярная механика: AJAX не так ужасен

Последний год меня преследовало гадкое ощущение, что я свалился с паровоза по имени Веб и бегу следом по насыпи, безнадёжно отставая. Началось всё с Google Mail, потом Google Maps, дальше пошло-поехало, и когда уже Blogger перешёл на фокусы Web 2.0, я сказал: хватит. Хватит ковылять. Или я догоню паровоз, или буду торговать пирожками на глухом полустанке.

Я слышал, что Web 2.0 — это AJAX. Обладание этой главной тайной дало сил двигаться дальше.

AJAX — это в первую очередь Javascript. Я посмотрел скрипты, которыми Google Mail творит свою престидижитацию, и понял, что этого я не осилю никогда. Ну не вышло у меня с Javascript брака по расчёту. Я его не люблю, и это взаимно.

Мне нужно было, чтобы я писал на PHP, а получил AJAX. Я нашёл какие-то полуразработанные библиотеки и понял, что они: а) уж очень полуразработаны; б) в итоге генерируют всё тот же Javascript. И ещё понял, что когда-то уже это проходил. А именно, когда мне предстояло переписать большой сайт с ASP (освоенный благодаря детскому греху по имени VisualBasic) на неведомый мне PHP. В тот раз я пытался найти инструменты, которые это бы сделали за меня. Тогда поиски убедили меня в необходимости изучить-таки PHP, и это оказалось благом. Опыт подсказывал, что не нужно залипушных библиотек, нужно запастись кофе и цитрамоном и понять-таки этот чёртов AJAX.

Google сразу посоветовал обратить внимание на Prototype. Я обратил. Потом обратил ещё раз. Я обращал примерно по часу в день, и заметил, что с утра всё кажется очень просто, а вот под вечер — совершенно безнадёжно. Поэтому на утро 26 котября я запланировал историческое событие — Первое Употребление AJAX.

Сейчас начало двенадцатого. Первое употребление потребовало часа. Только что я нажал в Firefox на ссылку на своей пробной странице и получил несколько строк, означавшие успех: щелчок мышки запустил механизм Ajax.Updater, который на заднем плане обратился к скрипту на PHP, получил данные и вывел их в нужное место. Всего делов-то.

Технически всё действительно просто, но испытал огромные сложности с головой. Ужасно трудно сломать в голове стену в полтора кирпича, по одну сторону которой — неподвижная веб-страница в браузере, по другую — абсолютно подвижный скрипт, порождающий эту страницу на сервере. Всё стало текучим: страница конструирует саму себя, сама обращается к серверу, а скрипт (нет, не так: Скрипт!) разжалован в мальчики на побегушках: поднёс данные, положил, и пшёл вон.

Я мог бы скопировать пример и увидеть его в работе за полминуты. Но нужно было осознать. Разобрать стену.

Теперь скучным языком. Под Web 2.0 главным образом понимается стиль построения документов, когда полностью задействуются возможности Document Object Model. Это значит, что любой элемент в документе может принимать события и создавать их, изменяя себя или другие элементы. Самое смешное, что в этом — ни капли нового. Web 2.0 — это Web 1.0, возможности которого наконец стали использовать.

Это всё равно что проездить на машине год, ни разу не переключившись на третью передачу. Переключись — и машина покажется другой.

Я написал много лирики и мало практических советов. Советов и так в избытке. Присматривающимся к технологии AJAX посоветую начать с библиотеки Prototype, делающей вещи по-настоящему простыми. Там разбираются примеры и даются ссылки на другие примеры. Дерзайте. Возможно, на разбор вашей личной стены вам потребуется не три дня :-)

2 комментария:

jonjonson комментирует...

Могу поделиться (пиратскими, что поделаешь) книгами в электронном виде по Ajax (одна даже на русском языке) ;)

Сергей комментирует...

Да вроде уже разобрался — нужда заставила :-) книги всё равно читать неокгда особо :-) но спасибо.

Поиск по этому блогу