客户端回调与Ajax页面方法之间的差异 – ASP.NET

前端之家收集整理的这篇文章主要介绍了客户端回调与Ajax页面方法之间的差异 – ASP.NET前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_0@ 基于我的理解,他们都基本上做同样的事情(让我们从JS执行服务器端方法).有什么区别吗

此外,Ajax页面方法可以使用JQuery或使用ScriptManager来实现.哪一个是首选,为什么?

** BOUNTY:添加赏金以明确说明问题.谢谢 **

从根本上说,Client Callbacks和Ajax页面方法都是一样的.他们使用XMLHttpRequest对象向一些URL发送请求(通常是异步的),获取该请求的结果,然后执行您提供的回调方法(回调与小写c),将请求的结果传递给您的方法.

话虽如此,两种方法有很大的区别:

>页面方法作为您的页面上的静态方法实现.你的页面类只是一个方便的容器,这些容器可以真正地托管在任何地方(一个Web服务,一个自定义的HttpHandler等).由于不会构建任何实例,因此客户端不必发送ViewState数据,Asp.Net不必运行该页面的生命周期.另一方面,您无权访问您的Page类的实例方法属性.但是,在许多情况下,您可以通过将实例方法重构为静态方法解决此问题. (有关更多信息,请参阅this article)
>客户端回调在您的页面上实现为实例方法.
他们可以访问您的页面上的其他实例方法,包括存储在ViewState中的内容.这是方便的,但是有一个代价:为了构建页面实例,客户端必须向服务器发送相对大量的数据,并且必须通过一个公平的页面生命周期来运行. (This article has a nice diagram显示哪些部分.)

除此之外,设置它们的成本差异很大,客户使用它们不同:

>客户端回拨需要相当数量的特殊脚手架
与Asp.Net紧密耦合的代码(如上面的链接所示).特定
我们现在更容易的替代方案,我很想说这种技术已经过时了(为了新的发展).
>使用调用页面方法
ScriptManager需要比客户端回调更少的设置:您只需要
将ScriptManager弹出到您的
页面,设置EnablePageMethods = true,
然后通过代理PageMethods代理访问您的页面方法.
>使用jQuery调用页面方法只需要你链接jQuery库(当然也熟悉jQuery).

我更喜欢使用jQuery来访问页面方法,因为它独立于服务器框架,并且暴露出恰当的实现细节数量,但这只是一个问题.如果您使用ScriptManager,它的代理使页面方法调用更容易一些眼睛,哪些可能会更重要.

原文链接:https://www.f2er.com/ajax/160126.html

猜你在找的Ajax相关文章