Получение контента: вызов AJAX и "Обычный" HTTP

Мне нравится, что в наши дни у нас есть возможность получить наш веб-контент с сервера: мы можем сделать HTTP-запрос старого стиля (со своим собственным URL-адресом в браузере), или мы можем сделать вызов AJAX и заменить части DOM на лету.

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

В "старые времена" нам пришлось бы перерисовать всю страницу (включая части, которые не менялись), если бы мы хотели показать обновленный контент. Теперь, когда AJAX созрел, нам больше не нужно это делать; мы могли бы, по-видимому, сделать "страницу" один раз и просто обновить изменяющиеся части по мере необходимости. Но каковы будут последствия этого? Есть ли хорошее эмпирическое правило для полной перезагрузки страницы и перезагрузки частичной страницы через AJAX?

Ответ 1

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

Если вы меняете контекст, используйте HTTP-запросы.

Если вы делите функциональность между разными страницами для лучшей ремонтопригодности, используйте HTTP-запросы.

Если вы хотите максимизировать свои просмотры страниц, используйте HTTP-запросы.

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

Ответ 2

Мое простое правило:

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

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

Ответ 3

Сложное количество накладных расходов на разработку переходит в частичную перезагрузку с помощью AJAX. Вам нужно создать дополнительные обработчики javascript для всех возвращенных данных. Если вы хотите вернуть полные HTML-блоки, вам все равно нужно указать, куда должен идти контент, и независимо от того, заменяет ли он другой контент. Возможно, вам придется повторно отобразить теги заголовков для отражения изменений контента, и вам нужно будет внедрить решение для истории, чтобы поисковые системы могли индексировать каждую страницу (используя SWFAddress плагин jQuery, например). Если вы возвращаете закодированные JSON данные, у вас есть дополнительный шаг обработки.

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

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