среда, 11 июля 2007 г.

Web 2.0, "За" и "Против" AJAX технологии на ресурсах. Новое - это хорошо забытое старое?. Стоит ли оно потраченных усилий?

AJAX - Asynchronous JavaScript And XML (асинхронный запрос JavaScript и XML).
Может перевёл я криво, но в чём суть его я сейчас расскажу.
Основная идея тут в том, что JavaScript сценарий обращается к какому-либо файлу с целью получения от него результата в формате XML. К чему именно обращаться, это уже другой вопрос, тут хоть к РНР, хоть к Перл скриптам, главное, чтобы в качестве результата "вернули" данные в XML формате.
И представьте себе, что изменять содержимое страницы можно не перезагружая её при этом! Т.е. например, блог добавляет новый пост.. После нажатия кнопки "отправить" он перенаправляет нас на следующую страницу типа "спасибо за комментарий". С использованием AJAX перенаправлять на следующую страницу не нужно, всё происходит на той же странице.
Или ещё пример. В поисковике запрашиваем какую-то часть слова, нам тут же выпадает окошко с похожими словами.. Тоже неплохой пример AJAX-технологий.

Кстати, AJAX это вовсе не новая технология, как Вам могло показаться изначально. Относительно. Такие эффекты были применены Гуглом ещё лет 5-7 назад. А настоящую популярность эта технология приобретать начала только с бумом социальных сетей и собсно с появлением такого явления, как web 2.0.

Какие тут плюсы?


- Экономия трафика;
Страницы не перезагружаются, заново не генерируются, следовательно экономиться трафик не только у хостера, но и у пользователя. Двойная выгода!

- Увеличение скорости работы сайта;
Увеличивается скорость получения новой информации, т.к. эта информация избавлена от всякого HTML кода и прочего служебного кода, который порой только замедляет работу проекта/скрипта в целом.

- Красиво, модно и стильно (web 2.0, чёрт его побери!);
С помощью JavaScript можно творить по истине потрясающие эффекты! Можно сайт оформить в виде "декстопа", где будут присутствовать перетаскивающиеся окошки, значки. Всё можно будет динамически перемещать и т.д. и т.п. Красота!

- Юзабилити;
Тут скорее плюс, чем минус. Хотя если слишком сильно перегрузить проект всякими феньками, то это может серьёзно затруднить восприятие материала пользователями и ествественно снизить юзабельность такого проекта.
В целом же, весьма удобно когда страница без перезагрузки осуществляет те действия, которые ранее сделать можно было только с перезагрузкой.


Минусы:


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

- Совместимость;
Чего тут скрывать - совместимость страдает. При программировании под IE используешь одни объекты, под Opera другие, под FireFox третьи, а преследуемые цели и результат один и тот же.
Поэтому по части совместимости, минус тут в том, что твои результаты не все смогут увидеть.

- Отключенный JavaScript у пользователей;
Лично я очень часто отключаю JavaScript при просмотре некоторых сайтов. Просто программный народ думает наверное, что у всех IE и при попытке зайти с Оперы - видишь неизвестно что. Хотя думаю, что это ещё один камень в сторону совместимости.

- Индексация в поисковиках;
Как собственно и вообще JavaScript сценарии индексируются далеко не должным образом, поэтому и индексация подобных проектов будет приблизительно схожей.


Поэтому при программировании Веб-два-нольных проектов, нельзя забывать об этих существующих минусах. Моё мнение - проект изначально писать следует без применения AJAX и как только протестируется проект на полную готовность к работе, можно добавлять AJAX.. ну и собственно - заново тестировать, теперь уже с АЯКСом!
Такое двойное тестирование окупиться в том случае, если у пользователей работающих с Вашим проектом отключен JavaScript.


P.S. Каталог мой всё пишется. Уже где-то на 97% завершил текущую версию. Свыше 850 строк кода! Остались последние штришки и буду запускать на всеобщее обозрение и критику.
P.P.S. Сколько же я думаю написать статью на тему уменьшения нагрузки от сайтов на сервер хостера. Тема актуальная и полезная, да вот всё руки у меня до неё не доходят. В общем ждите, думаю скоро асилю!

1 комментарий:

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

Посредственное сравниение, ну отчасти аффтор прав.