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

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

Вот они:

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

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

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

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

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

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

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

 

Оцените статью
Добавить комментарий

  1. SiR

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

  2. virua

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

  3. Mihan

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

  4. wzonnet

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

  5. Antony

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

  6. lunohod

    Все эти недостатки перекрываются отличной библиотекой 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. Alek Veritov

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

  9. Алексей

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

  10. Alek Veritov

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

  11. Роман

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

  12. Антон

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

  13. Andrey

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

  14. Alek

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

  15. Федор

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

  16. Филипп

    норм статья, полезная