在Asp.Net WebForm开发方式中,我们经常会用到一般处理程序和aspx页面。本文主要分享两者之间的异同。

首先请看一张图:

在这个图中,HttpHandler就是处理程序。

相同点:

  1. 如果把一般处理程序(ashx处理程序)和aspx页面处理程序放到上图中,它们应该处于相同的位置,都实现了IHttpHandler接口。实现了IHttpHandler接口才具备处理请求的能力。

上面代码就是对Http请求进行处理的,任何实现了该接口的类都可以对Http请求进行处理(调用各自的ProcessRequest()方式)。aspx页面继承自后台代码,后台代码又继承Page类,所以aspx页面具有处理Http请求的能力,同样是一般处理程序,它也实现了IHttpHandler接口,也可以对Http请求进行处理。

  1. 都能处理静态和动态页面。

不同点:

1 功能上

  1. 用户请求涉及到复杂的页面布局,使用aspx。aspx页面既可以作为页面呈现给用户,也可以对用户的请求进行处理(由此也可看出aspx的前台和后台两者之间是紧耦合的关系,而这种紧耦合是不利于项目某项内容的变更的)。
  2. 一般处理程序只能用来处理用户请求。

2 处理流程上

  1. 一般处理程序处理动态页面的时候需要把整个页面加载到服务器,接下来替换某些内容;处理图片等内容时会直接返回响应报文。而aspx页面大多使用了服务器控件,可以通过不加载整个页面而更新页面。

  2. 一般处理程序通过设置content-type设置返回的类型,可以返回静态页面,也可以返回图片,字符串等内容。一般处理程序处理静态数据比较合适,但是处理动态或页面的时候就会变的比较麻烦。他需要先把页面读取到服务器,然后再替换读取到的里面的某项数据,比较麻烦。

  3. aspx是动态服务器页面的意思,aspx页面中也可以放置服务器控件,这样后台就可以通过服务器控件的Id进行控件的更新以及读取操作,当需要更改某项内容时也不需要进行整个页面的读取操作,只需要更改某个控件的属性即可。相对于一般处理程序而言,很是方便。

3 性能上

  1. 一般处理程序比aspx页面处理程序要高一些。因为在管道模型中,在第11和第12个事件之间,aspx页面比一般处理程序多走了一个页面生命周期。
  2. aspx页面中有特殊ViewState状态管理机制,而ViewSate的使用虽然方便,却会占有带宽,影响性能(虽然我们能够禁用某个页面的ViewState属性,但是在表单中还是会有简单的ViewState存在,并不能完全禁用)。

4 应用范围上:

  1. 在能满足开发需求的基础上,如果考虑开发效率,建议使用aspx;
  2. 如果考虑性能,建议使用一般处理程序。
希望本文能对您有所帮助感谢您的阅读。如果有不当之处,还请您及时扶正。

【Asp.Net】一般处理程序(ashx处理程序) 和 aspx页面处理程序相关推荐

  1. ASP.NET中使用一般处理程序ashx作为后台处理实现响应get和post请求

    场景 ASP.NET中新建Web网站并部署到IIS上(详细图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199 ...

  2. 一般处理程序(ashx)和页面处理程序(aspx)的区别

    客官请看图 图中的Httphandler就是处理程序. 两者的共同点 如果把aspx处理程序和ashx处理程序放到上图中,他们是处在相同的位置的, 他们都实现了IHttphandler接口.实现了IH ...

  3. 【ASP.NET 问题】IIS发布网站后出现 “处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误“的解决办法

    [ASP.NET 问题]IIS发布网站后出现 "处理程序"PageHandlerFactory-Integrated"在其模块列表中有一个错误"的解决办法 参考 ...

  4. php 得到ashx,C# Post 一般处理程序(ashx)并得到返回值

    C# Post 一般处理程序(ashx)并得到返回值 发布日期:2018-02-09    浏览次数:1500 var postUrl = "**/LoginInfo.ashx"; ...

  5. ajax调用ashx的方法,jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

    1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是&q ...

  6. 用aspx开发html5页面,ASP.NET使aspx页面能接受HTML,asp的页面传送的文件-.NET教程,Asp.Net开发...

    aspx接受aspx页面的文件很简单,用htmlinputfile,就可以了,但是如果接受html页面post的文件 就不怎么好办了,我仿照asp的方法做法如下,自己测试通过,拿出来给大家共享,可以限 ...

  7. asp.net ajax1.0基础回顾(六):调用ASPX页面方法

    在aspx页面中,可能通过asp.net ajax调用其页面方法,具体设置如下. 1.服务器端代码(页面对象代码): using System.Web; using System.Web.Servic ...

  8. ASP.NET使aspx页面能接受HTML,asp的页面传送的文件

    aspx接受aspx页面的文件很简单,用HtmlInputFile,就可以了,但是如果接受Html页面post的文件 就不怎么好办了,我仿照asp的方法做法如下,自己测试通过,拿出来给大家共享,可以限 ...

  9. 账务处理程序、记账凭证账务处理程序、汇总记账凭证账务处理程序、科目汇总表账务处理程序、会计信息化概述、信息化环境下会计账务处理的基本要求(此章出1道小题)

    一.账务处理程序         会计账务处理程序,也称会计核算组织程序或者会计核算形式,是指会计凭证.会计账簿.会计报表相结合的方式.         企业常用的账务处理程序 包括:         ...

最新文章

  1. (44)MessageBoxA 监视器(过写拷贝,不使用 shellcode 注入)
  2. 04 ORA系列:ORA-00984 列在此处不允许 SQL parse error location
  3. leetcode 121 股票买卖问题系列
  4. 一篇文章带你快速入门JavaScript(实操代码)
  5. 字符串转换到double数组
  6. 数据库的相关概念 1006
  7. 二月十大病毒排行 加花加密最危险
  8. jango web开发指南_Web前端“月薪过万”必读的一些入门书籍和网站!
  9. 通过微信小程序看趋势
  10. 将2^n (n=1000000) 转化为10进制输出
  11. Newton形式的Hermite插值多项式
  12. 音乐API(仅测试使用)
  13. Excel如何查找重复内容
  14. 手机内存文件夹html,手机内存难清理?试试直接删掉这3个文件夹,网友:咋不早说?...
  15. 如何用十六进制换算十进制
  16. 详细解读给数据挖掘新手的6个案例
  17. 计算机 打开3389端口,3389端口修改和打开【图文教程】
  18. 跟涛哥一起学嵌入式 25:我接触过近50块嵌入式开发板,分享一下教训和总结...
  19. 计算机科学与交通方向,智能交通系统就业方向
  20. 当OpenCV遇上Origami

热门文章

  1. 用开源NAC阻止非法网络访问
  2. 通过base标签实现全网页新窗口链接。
  3. Linux--网卡聚合简单脚本(bond0)
  4. 与TCP/IP协议的初次见面(一)
  5. 好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题...
  6. VC 为静态控件添加事件
  7. mac linux netstat -n
  8. theano中的Rop和Lop的详细解释
  9. 最大池化层和平均池化层图解
  10. ubuntu16.04/20.04 xfce4下面使用护眼软件redshift