Лучше разбить HTML-страницу на более мелкие куски и объединить ее с помощью AJAX или лучше иметь ее как одну страницу? - PullRequest
2 голосов
/ 05 февраля 2010

Мы работаем над страницей с несколькими вкладками, которая содержит всю статическую информацию, такую ​​как метки и текстовые поля, для получения регистрационной информации. Мы используем Jquery UI Tabs, поэтому у нас есть все детали вкладок в виде Div на одной странице. Мой коллега считает, что управлять страницей сложно, поскольку она содержит около 800 строк HTML-кода. Будет ли проблема с производительностью, если мы разделим страницу на несколько html-файлов и добавим вкладки с помощью AJAX?

Заранее спасибо.

С уважением, Радж

Ответы [ 7 ]

3 голосов
/ 05 февраля 2010
  1. Загружайте только то, что вам нужно в то время, когда вам это нужно. Если возможно, ничего больше.
  2. Свободно используйте AJAX, но напишите свой код, возвращающий AJAX, чтобы он мог вызываться через AJAX или включаться сервером, а затем
  3. Возвращает часть страницы, которая видна с сервера при первой загрузке. По крайней мере, верните большую часть страницы, оставив только легкие некритические аспекты для последующей загрузки с AJAX.

При внимательном рассмотрении # 2 вы получите хорошую начальную производительность в сочетании с возможностью использовать AJAX.

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

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

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

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

Практика со временем в этом стиле кодирования повысит ваши навыки, и в следующий раз станет еще проще и более автоматически писать код таким образом.

2 голосов
/ 05 февраля 2010

Это абсолютно религиозный вопрос. Если ваша среда разработки не поддерживает закладки или что-то еще, создайте несколько файлов и объедините их перед загрузкой с помощью простого сценария.
Использование AJAX оправдано, когда будет использоваться только первая страница, а другие не обязательны.

1 голос
/ 05 февраля 2010

Как обычно используется страница?

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

Однако, если большинство пользователей увидят только чтение / использование небольшой части контента, использование AJAX будет более эффективным.

Еще один вопрос, который следует задать со стороны удобства использования: все ли должно быть на одной странице? Вы можете разбить его на несколько небольших страниц? Можете ли вы опустить необязательные поля и спросить их позже, когда они понадобятся?

Если вы используете серверный язык, вы сможете разбить свою страницу на файлы меньшего размера с помощью включений (или аналогичной функции).

1 голос
/ 05 февраля 2010

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

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

1 голос
/ 05 февраля 2010

Что вы используете на стороне сервера? PHP? Рубин на рельсах? Groovy? Java + JSP-х?

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

0 голосов
/ 06 февраля 2010

Лично я бы использовал прогрессивное улучшение. Во-первых, разбейте каждую вкладку на отдельную страницу для начала. На каждой странице отображается ряд вкладок, а каждая вкладка ссылается на соответствующую страницу.

Затем используйте убобтрузивный Javascript для добавления методов onclick на каждую вкладку, которые вместо загрузки новой страницы просто загружают содержимое на вкладке через AJAX.

Вам, вероятно, потребуется вызвать страницу с параметром, сообщающим, используете ли вы AJAX или нет - если нет, возвращается страница с ее дизайном. Если вы используете AJAX, он вернет только код для вкладки.

0 голосов
/ 05 февраля 2010

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

Если бы я был вами, я бы больше задумался о том, какое влияние окажет внедрение AJAX в ваше приложение (в частности, индексация поисковых систем, если это важно для вас). Контент, загружаемый через AJAX, не будет индексируемым, вам придется выяснить, как правильно обрабатывать время загрузки вкладок и т. Д.

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