Получение контента: AJAX против "обычного" HTTP-вызова - PullRequest
13 голосов
/ 04 декабря 2009

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

У меня такой вопрос: как вы решаете, какой метод использовать, если есть возможность использовать любой из них?

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

Ответы [ 3 ]

15 голосов
/ 04 декабря 2009

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

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

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

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

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

4 голосов
/ 04 декабря 2009

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

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

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

4 голосов
/ 04 декабря 2009

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

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

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

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