Есть ли какое-либо преимущество веб-сервисов перед веб-страницами для предоставления контента AJAX? - PullRequest
2 голосов
/ 24 октября 2008

Должны ли мои вызовы ajax общаться с веб-сервисами или с простыми веб-страницами? Кажется, что намного проще просто Response.Write () контент. Являются ли веб-сервисы более надежными или безопасными?

Ответы [ 7 ]

2 голосов
/ 09 ноября 2008

Для выполнения вызовов AJAX вы, возможно, захотите взглянуть на методы страницы. С помощью методов ASP.NET Page вы можете вызывать функцию на стороне сервера, которая существует в вашем коде, с использованием javascript, без накладных расходов жизненного цикла страницы, потому что метод должен быть статическим. Для получения дополнительной информации о методах Page, проверьте

http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx

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

0 голосов
/ 03 ноября 2008

Я не думаю, что веб-сервисы SOAP имеют преимущество перед стандартными веб-страницами. Однако я бы сказал, что REST-подобные веб-сервисы являются более подходящими. Вы можете реализовать REST-подобные веб-сервисы любым удобным для вас способом, в том числе как ASP-страницу с простыми Response.Write. Желательно, чтобы вы возвращали объекты JSON. Важно правильно спроектировать свой сервис, то есть определить, какой URL-адрес возвращает какой контент.

jQuery имеет удобную функцию getJSON для чтения ответа сервера.

0 голосов
/ 24 октября 2008

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

Кроме того, в зависимости от используемой библиотеки / кода AJAX веб-служба может работать лучше. Помните, что веб-служба не обязательно должна быть отдельным сайтом, но может быть страницей .asmx, размещенной в доступном месте в вашей текущей структуре сайта.

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

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

0 голосов
/ 24 октября 2008

Зависит от того, какие библиотеки вы используете для вызовов AJAX. Приятно получить JSON или, что еще лучше, десериализованный объект прямо из вашего вызова, независимо от механизма. Парсинг SOAP - это рутина, о которой вам не нужно беспокоиться. Тем не менее, важно сопоставить то, что входит и выходит, и это повлияет на мой выбор в первую очередь. (Исходя из ограничений, которые могут передавать различные менеджеры / архитекторы / и т.д.)

0 голосов
/ 24 октября 2008

Веб-сервисы стандартизированы, поэтому вы получаете определенные преимущества от их использования, по крайней мере, в отношении платформы Microsoft Development. Вы можете указать Visual Studio на ASMX, чтобы добавить ссылку из внешнего веб-сервиса в ваш проект - и хотя я уверен, что вы можете получить тот же результат со страницы * .aspx, у вас также есть много накладных расходов, связанных с * .aspx page (жизненный цикл страницы, viewstate).

Если кто-то идет за вами, чтобы поддержать ваш код, он может взглянуть на * .aspx «веб-сервис» и почесать голову.

0 голосов
/ 24 октября 2008

Ни в коем случае не вижу. Это всего лишь http-трафик, идущий туда-сюда.

0 голосов
/ 24 октября 2008

Поскольку страницы имеют более сложный жизненный цикл, при вызове веб-страницы возникают дополнительные затраты.

Тем не менее, я сомневаюсь, что это действительно важно в конце, но семантически и практически веб-страница не так эффективна.


ОБНОВЛЕНИЕ: Вы можете уточнить? Вы говорите о типичных страницах ASP.NET? Или "Классический" ASP? Как отметил кто-то в комментариях к этому ответу, если мы говорим о «классическом» ASP, то это было бы проще, чем страница ASP.NET, но я думаю, что это само собой разумеется ...

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