Почему бы просто не использовать ajax для запросов страниц для загрузки содержимого страницы? - PullRequest
5 голосов
/ 12 марта 2009

Многие веб-страницы загружают весь свой контент, чтобы изменить очень мало информации.

Теперь я хотел бы знать, почему разработчики не должны просто использовать ajax для запросов главной страницы?

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

У кого-нибудь есть идея, почему кто-то не должен так часто использовать ajax?

Ответы [ 9 ]

13 голосов
/ 12 марта 2009

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

Вы можете предоставить тонны поведения ajax на вашем веб-сайте, если вы уже поддерживаете стандартную навигацию на стороне сервера для полного содержимого. Взгляните на прогрессивное улучшение (SO) и прогрессивное улучшение (вики) .

6 голосов
/ 13 марта 2009

Вся предпосылка в том, что с AJAX вам не нужно перезагружать страницу целом , чтобы обновить небольшой процент этой веб-страницы. Это экономит полосу пропускания и обычно намного быстрее, чем перезагрузка всей страницы.

Но если вы используете AJAX для загрузки целой страницы, это на самом деле контрпродуктивно. Вы должны написать собственные подпрограммы для обработки обратного вызова данных AJAX. Это большая дополнительная работа для небольшого увеличения производительности.

Общее правило для использования AJAX: Если ваше обновление> 50% вашей страницы, просто перезагрузите, в противном случае используйте AJAX.

2 голосов
/ 12 марта 2009

Я приведу вам одну очень вескую причину.

Если вы отключите JavaScript в браузере, он не будет работать.

1 голос
/ 12 марта 2009

Самый большой минус - это пользователи, у которых отключен JavaScript. Ваш сайт просто не будет работать для них.

0 голосов
/ 13 марта 2009

Я использую только JavaScript и EJS в качестве движка шаблонов для своего сайта. На шаг ближе к SOFEA / SOUI.

Поисковые системы, сканеры / пауки, браузеры без JavaScript, программы чтения с экрана не нравятся, верно. Но я слежу за мейнстримом;)

0 голосов
/ 13 марта 2009

Ну, вы всегда можете незаметно добавить событие onclick, используя jquery, и прекратить обычную обработку URL.

Например:

HTML

<a id="ajaxify-this" href="my-working-url">Click me to do AJAXy stuff if you have javascript</a>

тогда Javascript

$(document).ready(function() {       
  $("#ajaxify-this").click( function(e) {
       updateContent(); // do something ajaxy with the page
       return false; // stop the click from causing navigation
   })
}
0 голосов
/ 13 марта 2009

Что ж, если вы хотите, чтобы AJAX загружал новые страницы, например, так же, как работает Gmail, я рекомендую, чтобы ваши ссылки были обычными. Ссылки HREF, которые указывают на истинный полный URL страницы рендеринга, также могут использовать событие onclick, которое останавливает попытку нормальная загрузка ссылок и совершение AJAX-звонков. Проблема здесь в том, что вы будете выполнять практически двойное кодирование, если не будете все это очень хорошо проектировать.

Таким образом, обычные ссылки не JS загружают полную страницу, а вызовы JS загружают только новые части или страницу. Это означает, что индексация паука тоже работает снова.

0 голосов
/ 13 марта 2009

Во-первых, вы хотите, чтобы контент имел статический URL, чтобы люди могли ссылаться на ваши страницы, добавлять их в закладки и т. Д.

Если все отлажено, это может быть сложно и / или утомительно.

0 голосов
/ 12 марта 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...