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

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

Вот они:

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

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

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

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

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

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

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

15 thoughts on “Недостатки 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. Если бы не эти недостатки, то его можно было бы засунуть ещё много куда (многие и сейчас суют). Хотя согласен, что, возможно, термин "недостатки" здесь не совсем уместен. Скорее это особенности.

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

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