Главная страница, наполненная на лету? - PullRequest
1 голос
/ 14 июня 2010

Есть ли какая-либо причина, чтобы веб-страница НЕ извлекала основной контент на лету?

Например, у меня есть страница с верхним и нижним колонтитулами, а в середине этой страницы находится пустой элемент div.Когда вы нажимаете одну из кнопок в заголовке, http GET выполняется за кулисами, и .innerHTML () пустого div заменяется результатом.

Я не могу придумать ни одной причины, почему это может быть плохой идеей, но я не могу найти какие-либо страницы, которые делают это?Пожалуйста, сообщите!

Ответы [ 6 ]

4 голосов
/ 14 июня 2010

Это не неслыханно, но есть проблемы.

  • Очевидным является то, что у некоторых пользователей отключен JavaScript по соображениям безопасности, и они вообще не смогут использовать ваш сайт.

  • Это также может отрицательно повлиять на пользователей с ограниченными возможностями, которые используют вспомогательные технологии, такие как программа чтения с экрана.

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

  • Это может затруднить индексацию вашего контента поисковыми системами.

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

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

Я бы не использовал его для статического контента (простой веб-страницы), но это, безусловно, разумный подход для контента, который в любом случае динамически обновляется.

1 голос
/ 14 июня 2010

Два соображения: Поисковая оптимизация (SEO) и закладки.

Есть ли прямой URL для доступа к ссылкам на заголовки?Если так, то ты (почти) в порядке.Например, следующий код оптимизирован для SEO и заполняет вашу страницу по вашему желанию:

<a href="seoFriendlyLink.html" onclick="populateOnTheFly(); return false;">Header Link</a>

Подвох возникает, когда люди пытаются добавить в закладки страницу, загруженную с помощью JavaScript ... это не будетбывает.Вы можете выбросить большинство из этих потенциальных твитов, рефералов по электронной почте и статей Digg / Reddit на главной странице.Обычный пользователь не знает, как сделать ссылку на ваш контент.

1 голос
/ 14 июня 2010

Без дополнительной работы с вашей стороны он убивает кнопки истории назад и вперед и затрудняет ссылки на страницы, которые загружает каждая кнопка.Вы должны будете реализовать какой-то механизм изменения URL, например, путем кодирования последней нажатой страницы в хэше URL (например, когда вы нажимаете кнопку, которую вы перенаправляете на #page-2 или что-то еще).

Это такжеделает ваш сайт недоступным для пользователей с отключенным JavaScript.Одним из принципов хорошего веб-дизайна является «постепенная деградация» - расширение вашего сайта с помощью расширенных функций, таких как JavaScript, Flash или CSS, но все еще работающих, если они отключены.

0 голосов
/ 14 июня 2010

Это довольно стандартное поведение на сайтах с поддержкой ajax.

Имейте в виду, однако, что потребуются дополнительные усилия, чтобы:

  • убедиться, что кнопка возврата работает
  • ссылка на конкретный контент (и закладка)
  • поддержка браузеров с отключенным JavaScript.
0 голосов
/ 14 июня 2010

Я тоже не могу придумать причину для этого (кроме, возможно, SEO), одна вещь, которая, вероятно, будет хорошей идеей, - это загрузить данные только один раз. т.е.

<a href="javascript: showdiv1()">Show Div1</a> - do ajax/whatever only if the innerhtml is blank

<a href="javascript: showdiv1()">Show Div2</a> - do ajax/whatever only if the innerhtml is blank

<div1></div>
<div2></div2>

Это должно снизить нагрузку на сервер, чтобы содержимое div загружалось только один раз.

Приветствия

0 голосов
/ 14 июня 2010

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

Если ваш контент загружается с помощью javascript, и javascript отключен в браузере пользователя, тогда определенно это плохая идея .

...