首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PageMethods还是通用处理程序?

PageMethods还是通用处理程序?
EN

Stack Overflow用户
提问于 2010-07-21 17:20:02
回答 3查看 2.9K关注 0票数 4

我正在做一个网站,在那里用户可以回复主题,打开主题等,当用户发送消息时,我不想回发;它很丑陋。

我现在正在使用泛型处理程序,但我遇到了一些问题。比如当XMLHttpRequest的onreadystate发生变化时,使用UpdatePanel更新GridView。

我决定使用PageMethods,但我也想问你。

PageMethods和泛型处理程序哪个更好、更快、更有用?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-21 17:55:58

我不认为页面方法和处理程序的速度有太大区别。但是,如果您担心应用程序的性能,您应该对每个选项进行基准测试,并选择最适合您的选项。

为了回答这个问题,是更好的还是更有用的,基本上在ASP.NET上下文中有三个选项,每个选项都有其优缺点:

  1. Page methods -您所有的代码都包含在单个页面中,如果代码只由该页面使用,这是很好的。您可能应该实现将特定于页面的HTML片段作为Page方法返回的方法。但是,如果我们讨论的是可重用代码,例如“保存主题”或“获取主题”,您可能需要考虑将此代码外部化到其他地方。我向您保证,随着应用程序的发展,您将在应用程序端的其他地方需要这些方法,因为well.
  2. Generic HTTP处理程序是轻量级的,非常适合于在整个应用程序中经常调用的代码。大多数情况下,实现泛型处理程序是为了提供内容,我不知道围绕这个主题的最佳实践是什么,但对我来说,POST到泛型处理程序以保存数据有一种独特的味道。您还可以找到相关功能(保存、获取单个、获取多个等)。您最终会得到一大群处理程序,或者一个具有巨大的switch语句和基于查询字符串和POST参数的模糊约定的处理程序。我不建议使用此选项来实现广泛的AJAX应用程序。对于小的部分,它可能适合您的needs.
  3. ASP.NET web服务(或WCF) -您在问题中没有提到的第三个选项是ASP.NET web服务(.asmx)。您可以轻松地将它们包含在现有的ASP.NET应用程序中,而不需要任何额外的框架依赖项。它们在选项1和选项2之间提供了一个很好的平衡。一方面,你可以在整个应用程序中获得可重用性,如果你愿意的话,甚至在你的应用程序之外,这是Page方法无法提供的。另一方面,您可以以有意义的方式灵活地将相关功能绑定在一起,这往往会使泛型处理程序变得混乱。您还可以根据需要使用SOAP XML、JSON或HTTP POST /明文与服务进行交互。

这里的通配符选项是:Use ASP.NET MVC jQuery。如果您希望构建一个简单易行的web应用程序,并且您通常觉得回发很难看,并且您发现诸如当xmlhttprequest更改readystate时到底发生了什么之类的东西很有趣,那么它可能会为您提供更好的总体体验。也许不是为了这个项目,而是为了下一个项目。

票数 14
EN

Stack Overflow用户

发布于 2010-07-21 17:50:37

如果您指的是通用处理程序web服务端点,那么您可以进行以下区分:

  • 如果功能仅需在该页面上提供,则可以使用PageMethods仅限
  • 如果要重用web服务端点,则可以使用web服务端点

就我个人而言,我几乎总是使用web服务端点(在我的例子中,启用了ajax的WCF)。

票数 0
EN

Stack Overflow用户

发布于 2010-11-12 20:28:08

我不明白为什么不应该使用泛型处理程序。我认为它们是最好的--简单而灵活。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3297783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档