Общий вопрос о javascript (REST vs. SOAP) - PullRequest
0 голосов
/ 29 июня 2011

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

В основном будетиспользование службы REST для загрузки данных на стороне клиента делает загрузку страницы более быстрой, чем загрузка данных на сервер с помощью вызова SOAP?Сначала запускается page_load или javascript вызывает?

Ответы [ 4 ]

3 голосов
/ 29 июня 2011

С точки зрения разницы между вызовом службы SOAP на бэкэнде и вызовом службы REST / JSON на внешнем интерфейсе - время загрузки вашей страницы может быть воспринято как более быстрое, если вы позволите кадрузагрузка страницы и отображение «счетчика» при загрузке данных из службы REST.

Ваш вопрос немного двусмысленный, поскольку неясно, о чем вы спрашиваете.


Что ж, REST против SOAP - это не то сравнение, которое может сделать кто-либо в планескорость / производительность на сайте.REST относится к концептуальной семантической модели того, как совершать вызовы в службу.SOAP, с другой стороны, относится как к семантике вызова, так и к формату данных.Для сравнения, REST ничего не говорит о формате данных (хотя обычно подразумевается JSON, но ничего о REST не исключает XML или любой другой формат данных).

JSON против SOAP, однако, это отдельная история.

Анализировать ответы JSON будет легче / быстрее на стороне клиента, чем SOAP-сообщения (при условии, что выВы используете стандартный материал JavaScript, который работает кроссплатформенно, и никаких модных плагинов).

Время загрузки?SOAP намного более многословен, чем JSON, и требует дополнительных символов для передачи тех же значений ... так что, возможно, небольшая задержка из-за относительных размеров отправляемых сообщений.

Обработкавремя на стороне клиента?JSON определенно имеет преимущество.

Простота использования на клиенте?JSON - руки вниз.

2 голосов
/ 29 июня 2011

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

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

Разница (как упомянул и Стив) заключается в воспринимаемой производительности.Здесь я всегда рекомендую вам звонить в сервисы с внешнего интерфейса.Есть несколько причин:

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

На самом деле, если вы вызываете сервис из бэкэнда, я не вижу смысла вообще иметь сервис (если он только возвращает данные для привязки к интерфейсу).Вы можете просто использовать старый способ веб-форм для создания пользовательского интерфейса и возврата ответа непосредственно на странице ASP.NET.

В заключение - многие преимущества веб-сервисов появляются, когда вы вызываете их из клиентского скрипта.

0 голосов
/ 29 июня 2011

Прямой ответ на ваш вопрос: событие Page_Load будет загружено до ваших фоновых вызовов Javascript.Я рекомендую использовать javascript с фоновой загрузкой, когда на вашей странице есть несколько веб-элементов управления, которые загружают слишком много данных, рисуют элементы или выполняют сложные вычисления, которые занимают много времени и влияют на пользовательский опыт и производительность приложений.Вы должны дать пользователю возможность загружать страницу и видеть ход загрузки каждого элемента (чтобы он не скучал во время просмотра).В этом случае рекомендуется использовать вызовы REST с JSON.

0 голосов
/ 29 июня 2011

Не заглядывая в ваш код, я не могу сказать, что не так / почему загрузка сайта происходит недостаточно быстро.REST и SOAP - это определенные стандарты для связи между клиентом и сервером.Я предпочитаю отдых, а не мыло.

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