logo


home map contact


Если вы видите это сообщение - значит вы используете браузер Internet Explorer. Негативное отношение к этому браузеру сложилось не только у владельца данного ресурса, но и у подавляющего большинства людей, разбирающихся в web технологиях. Попробуйте установить один из браузеров по ссылке ниже, возможно вам он тоже понравится больше!

Opera, the fastest and most secure web browser     Spread Firefox Affiliate Button

недостатки AJAX'а

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

Вот они:

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

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

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

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

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

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

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



Комментарии:



SiR     05.12.07 в 10:38

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





virua     29.03.08 в 14:52

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





Mihan    20.11.08 20:33

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




wzonnet    15.02.09 22:12

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




Antony    23.07.09 11:40

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




lunohod    11.08.09 15:38

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




Алексей    19.08.09 19:27

Преветствую вас господа, спасибо что появился такой сайт, у меня проблемка под номером 5 "JavaScript код, приходящий в ответе, не выполняется.", есть вроде как решение, использовать eval()!

Вопрос у кого была такая ситуация, может поможете?

Перепробовал уже наверное всё!

Нужно чтобы при обработке запроса в php скрипте, последний выдвал бы рабчий js!

пример php файла на который ссылается ajax:

<?

echo '<script>alert("Это ЖабоСкрипт")</script>';

?>

Я конечно понимаю что в результате передается xml, но всеже что можно сделать. jQuery не интересует, хочу сделать свой модуль, так как для сайта с весом страниц 1-5кбайт, библиотка jQuery весом в 56кбайт, это перебор!

Спасибо!




Alek Veritov    19.08.09 21:35

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




Алексей    20.08.09 21:02

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

<?

echo '<script>alert("Это ЖабоСкрипт")</script>';

?>

Ну честно уже 3 дня сижу, не могу додумать!!!




Alek Veritov    21.08.09 02:26

to Алексей:

<?
echo 'alert("Это ЖабоСкрипт");';
?>

так не пробовали? функция eval принимает строку javascript кода, html тег <script> она естественно не понимает. соответственно, если в ответе сервера есть другой html, то для eval'а нужно извлечь только содержимое <script>.




nikman    17.11.09 12:55

все брехня кнопки назад и далее работают. http://readystate.ru/aion/baza.php#mod=items




Роман    10.05.10 15:54

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

Тоже брехня, учите JS. (defer)




Антон    18.11.11 01:53

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




Andrey    23.01.12 16:18

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

Так что это не недостатки :) Вы просто не туда его суете :)




Alek    23.01.12 16:26

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






Если вам помогла или просто понравилась эта статья вы можете отблагодарить автора кликнув по рекламе. Спасибо!





комментировать:
прежде чем писать комментарий убедитесь, пожалуйста, что он не попадает в нижеследующие категории:
  • не стоит писать "я чайник, помогите ..." или "я начинающий, объясните ..." - уважайте себя! может вы и новичок, но ведь не тупой же! сами вполне способны во всем разобраться, тем более, что материал здесь изложен весьма доступно

  • не пишите вопросы типа "как мне сделать такую же менюху как наверху?", "куда вставлять этот код?", "как устроен интернет?" и т.д. - уважайте время автора!

  • комментарии вида "все, что здесь написано - бред" будут оставлены только если будут подписаны "я такой-то, разработчик сайта такого-то с посещаемостью 1000 хостов в день" и т.п. Если вы не согласны с чем-то - обоснуйте, напишите как правильно, а писать простые ругательства не надо, это не забор

прямые оскорбления кого бы то ни было будут удалятся!
здоровая критика приветствуется!



от кого:  

security picture