Недостатки AJAX’а

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

Вот они:

Поисковая оптимизация. Если вы решили организовать с помощью AJAX’а навигацию сайта или просто несколько страниц, не забывайте, что поисковые роботы исполнять JavaScript пока не научились, поэтому индексация будет затруднена. В качестве решения можно попробовать сделать доступным контент другим способом, например, сделать «Карту сайта» с полным списком страниц.

Кнопка «Назад». По статистике, кнопка браузера «Назад» является вторым по популярности средством навигации после перехода по ссылке. Страницы, созданные с использованием AJAX (читай JavaScript), такую возможность не поддерживают, потому что их содержание генерируется, а адрес остается один и тот же. Можно попробовать это исправить, сделав ссылку «Назад» средствами JavaScript, но это часто не оправдано сложно.

Избранное Как уже упоминалось выше, у нескольких страниц AJAX может быть один адрес, поэтому пользователь может добавить в избранное не то, что ожидает. Решение заключается в том, чтобы снабдить каждую страницу своим адресом.

Неопределенное время ответа. Время ответа сервера на запрос варьируется в зависимости от занятости последнего, то есть — не определено. А во врему загрузки данных с помощью AJAX браузер никак не отображает, что что-то происходит. Чтобы не оставлять пользователя в неведении, можно выводить надпись «Идет загрузка» или анимированное изображение.

JavaScript код, приходящий в ответе, не выполняется. Хотя это, в общем-то, логично, если вспомнить, что объект XMLHttpRequest — «душа» аякса — задумывался для работы с xml. Решение пока только одно — метод eval.

Не все гладко с IE. IE некорректно парсит js-код в HTML-куске, полученном через AJAX, если есть классические скрывающие комментарии <!— //—>. Если передаваемый сервером заголовок с кодировкой не понятен IE, то возникает cистемная ошибка -1072896658

Возможно со временем все эти недостатки уйдут в прошлое.

15 Комментарии “Недостатки AJAX’а

  1. Вот, то что нужно. столкнулся со всеми этими недостатками как только начал работать с аяксом, буквально по очереди в течении недели все повылазило.

  2. Хорошо узнать о недостатках ajax-подхода заблаговременно. А то из некоторый статей выдается, что это панацея от всего 🙂 Однако, невзирая на видимые недостатки ajax имеет много преимуществ. Важно использовать его там, где это целесообразно.

  3. 2 недели искал сайт подобного рода.
    СПАСИБО ОГРОМНОЕ. AJAX теперь превратился в подобие компонента асинхронной передачи данных в Builder C++ или Delphi

  4. AJAX можно и нужно. А все его недостатки со временем отойдут. Тем более что его приемущества перекрывают недостатки.

  5. Эта страница у меня отображается со здоровенной горизонтальной полосой прокрутки, на других страницах все корректно.

  6. Все эти недостатки перекрываются отличной библиотекой history Keeper или что-то наподобие, а для небольших сайтов можно делать надстройку над обычными гиперссылками обработиком onclick — в результате для робота будет заметны все переходы из href="…" на страницы, а переход будет осуществляться ajax'ом. ps : а IE (по поводу заявления в начале страницы), если уметь бороться с его багами, коих на самом деле не так уж и много, замечательный браузер — со всякими недоверсиями оперы дольше бороться приходится……..

  7. Преветствую вас господа, спасибо что появился такой сайт, у меня проблемка под номером 5 "JavaScript код, приходящий в ответе, не выполняется.", есть вроде как решение, использовать eval()! Вопрос у кого была такая ситуация, может поможете? Перепробовал уже наверное всё! Нужно чтобы при обработке запроса в php скрипте, последний выдвал бы рабчий js! пример php файла на который ссылается ajax: <? echo '<script>alert("Это ЖабоСкрипт")</script>'; ?> Я конечно понимаю что в результате передается xml, но всеже что можно сделать. jQuery не интересует, хочу сделать свой модуль, так как для сайта с весом страниц 1-5кбайт, библиотка jQuery весом в 56кбайт, это перебор! Спасибо!

  8. to Алексей: честно говоря не знаю зачем такое может понадобиться, ну так eval то вас чем не устраивает?

  9. to: Alek Veritov Вот вы уже не первый кто это говорит, но я не знаю куда ету функцию вставить, как eval`ом обработать вернувшися зарос, у вас есть простой пример??? Допустим страница index.htm с js скриптом и элементами <div id="script"></div>, в который будет загружаться результат запроса ajax из файла go.php с привиденым мной уже содержимым : <? echo '<script>alert("Это ЖабоСкрипт")</script>'; ?> Ну честно уже 3 дня сижу, не могу додумать!!!

  10. to Алексей: <? echo 'alert("Это ЖабоСкрипт");'; ?> так не пробовали? функция eval принимает строку javascript кода, html тег <script> она естественно не понимает. соответственно, если в ответе сервера есть другой html, то для eval'а нужно извлечь только содержимое <script>.

  11. JavaScript код, приходящий в ответе, не выполняется. Хотя это, в общем-то, логично, если вспомнить, что объект XMLHttpRequest — "душа" аякса — задумывался для работы с xml. Решение пока только одно — метод eval. Тоже брехня, учите JS. (defer)

  12. Облазил кучу статей по АЯКСУ — прочитал здесь, сделал, все сразу заработало. Автору огромное спасибо.

  13. Аякс в основном нужен для: поиск на сайте веб-формы голосовалки Так что это не недостатки 🙂 Вы просто не туда его суете 🙂

  14. Если бы не эти недостатки, то его можно было бы засунуть ещё много куда (многие и сейчас суют). Хотя согласен, что, возможно, термин "недостатки" здесь не совсем уместен. Скорее это особенности.

  15. «не забывайте, что поисковые роботы исполнять JavaScript пока не научились»
    Странно, Яндекс уверяет, что его роботы могут.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *