Первые шаги в освоении AJAX

20 Октября, 2005

На волне появления множества интересных web-сервисов меня как web-программитса не могла не заинтересовать такая интересная штука как AJAX.

AJAX - это подход к построению пользовательских интерфейсов web-приложений, при котором для получения каких-либо данных не нужна перезагрузка всей страницы. Все осуществляется за счет асинхронных запросов с помощью JavaScript и XML как носителя данных, полученных в ответ от сервера (да и то в общем случае). AJAX - это не самостоятельная технология, это идея.

Так как познания мои в области программирования на JavaScript очень уж поверхностны (все-таки по жизни более приходится иметь дело с серверным программированием), то решил воспользоваться готовым решением от Дмитрия Котерова – классом Subsys_JsHttpRequest, за что ему отдельное спасибо.

И вот, собственно, что у меня вышло: при наведении мыши на ссылку блога находящегося у меня в блогролле, начинается подгрузка последнего сообщения из его rss-канала.

Загрузка поста из удаленного rss-канала посредством AJAX

Технически реализовать это оказалось достаточно просто, благо Дмитрий Котеров позаботился о том, чтобы не возникло сложностей с прикруткой его класса, а обработка xml-файла, коим является rss-feed, задача еще более тривиальная, правда имеет свои тонкости в зависимости от версии php-интерпретатора.

P.S. В IE это не работает, так как лень было посредством JavaScript, учить осла понимать псевдо-селектор :hover для элемента списка li. Будет время и желание - сделаю и для него. Правда, стоит ли?

Комментарии

1

Рекомендую посмотреть на JS-библиотеку SACK - я испольозовал ее уже в трех приложениях.

Также посмотри на проект Dojo - это гораздо более серьезная вещь, но с ней пока нет времени поковыряться.

2

Обалденно. Тоже очень интересуюсь AJAX'ом, но пока только из любопытсва :)

3

Симпатишно :)

4

Молодца!
Опера 8.5. Всё работает как и на скрине. Но когда хочу двинуть курсор на «читать далее», то весь жёлтый квадратик исчезает.

5

Это все прекрасно. Но достает несовместимость в стандартах браузеров.... AJAX - замечательная вещь!

6

Надо обязательно потрудится и для IE. ;)

7
AJAX изменит web А откуда такие сипатишные иконки в постах? Сам делаешь?
8
А откуда такие сипатишные иконки в постах? Сам делаешь?

Нет конечно. В /usr/local/share/icons/ беру ;)

9

Есть еще она готовая реализация AJAX. Правда она использует не XML, а JSON, что несколько увеличивает клиентский код. Назвается эта реализация HTML_AJAX.

10

А что если оформить это решение как плагин к вордпрессу?

11

А есть ли смысл?

12
В IE это не работает, так как лень было посредством JavaScript, учить осла понимать псевдо-селектор :hover для элемента списка li.

Почему для li, а не a? Это же обычные ссылки, а ховер для последних и IE отлично понимает.

13

действительно, можно же навесить hover на A

14

Использование JS - это замечательно, но как же междраузерная не совместимость и возможность отключить выполнение оного ?

15

2Владимир и Гофман Евгений:
hover нужен именно для li, т.к. в нем может кроме ссылки находится некий текст.

2webchess:
По поводу межбраузерной несовместимости уже сказано немало слов. И если есть желание/экономическое обоснование, можно реализовать что-угодно.
По поводу отключения JS: каков процент таких пользователей? Или скажу так, каков процент пользователей, которые знают, как отключить (и зачем) JS в своем браузере???

16

По поводу ховер для ИЕ. Попробуй это
Все что нужно - строка: body {
behavior:url("csshover.htc");
}
и ховер работает везде - только для счастливчиков с ИЕ страница на 4Кб тяжелее.

17

Обязательно попробую этот способ. Правда, я пока не готов увидеть свои списки в IE. Точно знаю, проблем с margin/padding-ами там куча вылезает.
А, вообще, я пробовал способ, описанный на A List Apart, но циклический просмотр DOM-дерева сайдбара уж больно медленно работает.

18

Все конечно не ново, да и старомодно уже пользовать JsHttpRequest благо XMLHTTPResponse уже поддерживается тройкой браузеров. Даже коммента не оставил бы да вот фраза про то что лень делать hover в IE улыбнула :) Т.к. напомнила старые добрые времена когда кодеры вставляли кнопки мол "Best viewed in Netscape" Понятное дело что учиться кроссбраузерности на сайте с таким предупреждением не рекоммендуется :) Глупо реализовывать фичу которая работает только у 20% пользователей (Mozilla+Opera), хотя на самом деле можно сделать для всех (не ховер так онмаусовер и т.п.) главное чтобы яйца не мешали и идеализм не пёр :) Идеализм - потому как негоже веп-девелоперу (а этот сайт вроде как для них) закрывать глаза на 80% юзеров (клиентов) только потому что Microsoft кое-где отходит от спецификаций.

19

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

Имеет ли смысл будущие проекты реальзовывать с применением идеи ajax?

20

Все конечно не ново, да и старомодно уже пользовать JsHttpRequest благо XMLHTTPResponse уже поддерживается тройкой браузеров.

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

Понятное дело что учиться кроссбраузерности на сайте с таким предупреждением не рекоммендуется :)

Кроссбраузерности как и прочим вещам я никого не учил. Я всего лишь опробовал новую для меню технологию. Просто так, для себя. Я даже код не приводил в силу его убогости.

Глупо реализовывать фичу которая работает только у 20% пользователей (Mozilla+Opera), хотя на самом деле можно сделать для всех (не ховер так онмаусовер и т.п.) главное чтобы яйца не мешали и идеализм не пёр :) Идеализм - потому как негоже веп-девелоперу (а этот сайт вроде как для них) закрывать глаза на 80% юзеров (клиентов) только потому что Microsoft кое-где отходит от спецификаций.

Во-первых, это никак не фича. Это всего лишь практическое применеие, причем не существенное, чтобы труд не пропадал даром. А по поводу идеализма, статистика показывает, что среди посетителей моего блога нет этих 80%

Итоговые данные на 5.01.2005
Firefox - 57%
Opera - 25%
IE - 8%

21

я никого не учил. Я всего лишь опробовал новую для меню технологию.

Странный дизклеймер, непонятна тогда миссия данного сайта, прям дневник очередной (очень жаль), ну да и неважно конечно.

среди посетителей моего блога нет этих 80%

Да вот хотя бы тут, я верю, выборка побольше будет:
http://www.artlebedev.ru/tools/browsers/
Но можно жить лишь в своем собственном мире, не спорю :)

ЗЫ. Неплохое оформление тут, красиво :) но инфы мало.

22

непонятна тогда миссия данного сайта, прям дневник очередной (очень жаль)

До уровня "сегодня я купил телефон, а вчера смотрел Дневной Дозор" опускаться не хочется, но на глобальный информационный ресурс, кладезь знаний пока не тяну и не претендую в ближайшее время. А с миссией надо определиться, подумаю на досуге.

ЗЫ. Неплохое оформление тут, красиво :) но инфы мало.

Я рад, что кому-то кроме меня нравится.
А по поводу скудного объема информации - виноват, времени последнее время вовсе нет (хех, каламбур). Разберусь с проблемами – постараюсь сделать, чтобы тут было интересно.

23

Спасибо за интересную информацию пишите больше :).

24

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

25

я сейчас жабаскрипт осваиваю, скоро аякс.. =)

26

cool :)

27

Спасибо! Классную идею подкинули. Очень помогло... Долго мучался с админкой для своей CMS, теперь очень удобно.

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

Добавить комментарий

Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>