ASP.NET 页面方法与 Web 服务

Posted

技术标签:

【中文标题】ASP.NET 页面方法与 Web 服务【英文标题】:ASP.NET page methods vs web service 【发布时间】:2010-12-04 15:00:13 【问题描述】:

我正在构建一个动态的部分加载 asp.net 页面,我想使用 jQuery 调用页面方法或 Web 服务来检索内容 html

页面方法或网络服务,性能方面,哪种方式更好?

如果我在服务器端调用页面方法,页面是否会经历完整的生命周期?

有什么好的资源可以帮助我更好地理解页面方法吗?

【问题讨论】:

【参考方案1】:

您无需ScriptManager 控件即可调用 PageMethods 和 Web 服务(它会生成 javascript 代理对象,允许您使用熟悉的语法来调用 Web 服务和页面方法)。

using jQuery to directly call ASP.NET AJAX page methods上的文章

using jQuery to Consume ASP.NET JSON Web Services上的文章

这是MSDN article from 2007 on Web Services and Page Methods。简要地看一下,它似乎仍然与它们的工作方式/今天让它们工作需要做什么有关。

性能方面:

您可能期望页面方法提供 性能优于 Web 服务。 毕竟要解决Web服务 调用,ASP.NET 运行时必须 解析 SOAP 数据包。然而,这 不完全正确。 ASP.NET AJAX 安装一个定制的 HTTP 处理程序 (参见图 3),它拦截所有 ASMX 请求。带有 /js 的请求 后缀的处理方式不同, 直接使用 JSON 有效负载 和Web服务方法。因此, 不涉及任何 SOAP,并且 请求正文仅包含 输入参数的 JSON 流。 对于非 AJAX 请求,新的 HTTP 处理程序只是委托回调 到原来的 ASP.NET 处理程序 了解 SOAP。

为了响应页面生命周期,页面方法通过服务器端页面生命周期(也有一个client-side Page Lifecycle)。

【讨论】:

嘿@Russ 又是同一篇文章! @TheVillageIdiot - 我没想到它会这么快再次出现! @RussCam 一个后续问题,PageMethods 是异步的,还是可以将它们设为异步?我遇到了一个障碍,其中一个 PageMethods 调用(大约需要 4 秒才能返回)阻塞并阻止其他基于计时器的 Page 方法调用按预期运行。【参考方案2】:

这是一个很好的资源:

http://tugberkugurlu.com/archive/asp-net-web-forms---calling-web-service-page-methods-using-jquery

这篇博文将引导您完成。

【讨论】:

以上是关于ASP.NET 页面方法与 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

简述ASP.NET页面与WEB服务器的交互过程

新手轻松学会MVC

带有 ASP.NET MVC 的 jquery - 调用启用 ajax 的 Web 服务

ASP.NET Core Web API 身份验证

ASP.NET Web Form学习

ASP.NET和ASP.NETCore多环境配置对比