ASP.NET页面方法与Web服务

14

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

就性能而言,页面方法或Web服务哪种方式更好?

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

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

2个回答

19

您可以调用PageMethods和Web服务而无需使用ScriptManager控件(该控件生成JavaScript代理对象,允许您使用熟悉的语法调用Web服务和页面方法)。

关于使用jQuery直接调用ASP.NET AJAX页面方法的文章。

关于使用jQuery消耗ASP.NET JSON Web服务的文章。

这里有一篇2007年的MSDN文章关于Web服务和页面方法。简要浏览后,它似乎仍然与它们的工作方式/您需要做什么才能使它们正常工作相关。

性能方面:

你可能期望页面方法比Web服务提供更好的性能。毕竟,为了解决Web服务调用,ASP.NET运行时必须解析SOAP数据包。然而,这并不完全正确。ASP.NET AJAX安装了一个量身定制的HTTP处理程序(参见图3),拦截所有ASMX请求。带有/js后缀的请求以不同的方式进行处理,直接使用JSON有效负载和Web服务方法进行工作。因此,根本没有涉及SOAP,请求体只包含输入参数的JSON流。对于非AJAX请求,新的HTTP处理程序只是将调用委托回理解SOAP的原始ASP.NET处理程序。 响应页面生命周期,页面方法不会经过服务器端页面生命周期(也有客户端页面生命周期)。

嘿,@Russ,同一篇文章! - TheVillageIdiot
@TheVillageIdiot - 我没想到它会这么快再次出现! - Russ Cam
@RussCam,一个后续问题,PageMethods是异步的吗?或者它们可以被设置为异步的吗?我遇到了一个难题,其中一个PageMethods调用(需要大约4秒才能返回)会阻塞并防止其他基于计时器的PageMethods调用按预期运行。 - Charles Okwuagwu

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接