在.net 3.5的情况下

前台JQuery做Ajax的时候,服务器端

(1)可以调用aspx.cs 中声明带有[WebMehtod]的public static 的方法(不需要自己手动添加web.config的配置)

(2)可以调用 *.asmx (web服务) 里面加了[webmethod]的方法(不能写静态,写静态就调用不到了)需要在asmx里面 去掉 [System.Web.Script.Services.ScriptService] 的注释

(3)可以调用 *.ashx (一般处理程序),不可以使用WebServices 的技术直接访问对象方法,可以在参数中添加method=XX,来区分请求的目的

例如:

(1)aspx.cs 静态方法[WebMethod]

[WebMethod]
public static string SayHello()
{   return "Hello Ajax!";
}

$(function() {   $("#btnOK").click(function() {   $.ajax({   //要用post方式   type: "Post",   //方法所在页面和方法名   url: "data.aspx/SayHello",   contentType: "application/json; charset=utf-8",   dataType: "json",   success: function(data) {   //返回的数据用data.d获取内容   alert(data.d);   },   error: function(err) {   alert(err);   }   });   //禁用按钮的提交   return false;   });
});

(2)WebService1.asmx

  /// 返回泛型列表 [WebMethod]public List<int> CreateArray(int i){List<int> list = new List<int>(); while (i >= 0){list.Add(i--);} return list;}

//返回泛型列表$("#btnArray").click(function(){$.ajax({type: "POST",contentType:"application/json",url:"WebService1.asmx/CreateArray",data:"{i:10}",dataType:'json',success:function(result){                    alert(result.d.join(" | "));}});});

(3)handler处理程序

$("#dbtn").click(function() {  $.ajax({ type: "POST",  dataType:"Text", url: "AjaxHandler.ashx", data: { name: "admin", pass: "admin" },  beforeSend: function() { $("#ds").html("loading"); },  success: function(msg) { $("#ds").html("<p>" + msg + "</p>"); }  });
});  

https://www.cnblogs.com/sxhlf/p/6709264.html

另外对这三种方法做了性能测试

aspx文件也就是普通的页面文件,ashx就是一般处理程序,他没有页面部分,asmx文件也就是轻量级的WebService。假如我们需要一个处理某个请求然后返回一个结果的程序,那么你会选择什么样的文件来编码呢?总的来说,这三种文件各有各的好处,我现在就从客户端发起一个get请求,服务端返回一个“Hello World”字符串作为本次请求的结果,这三种文件处理效率上做个比较分析。

我们实验的准备环境是,IIS7.5,三种文件只是简单的返回一个“Hello World”字符串,不要多写别的代码,aspx文件就采用直接写在页面上,也不要指定什么后台处理类了,同时也去掉多余的HTML代码。如图:

通过apache轻量级的测试工具ab,模拟10个并发用户共请求1000次分别得出出结果如图:

1、aspx

2、ashx

3、asmx

通过观察三者中的Requests per second(服务器每秒处理请求数)以及Time per request<mean,across all concurrent requests>(服务端平均处理每个请求耗时)可以得知如下结论:

   aspx与ashx处理效率差不多,但ashx仍是首选。asmx处理效率非常低下只有前者的1/3,故在高性能环境下慎用。

道理

1、为啥ashx是首选?

ashx比较轻量级,没有aspx实现的复杂,他只是一个简单服务端处理请求程序,而aspx框架需要处理更多的额外的东西,加上aspx属于动态编译,首次访问速度会非常慢,本次试验已经去掉了这个阶段,另外通过上面分析数据可知,即使我去掉了多余的内容,其实际传输内容也比ashx多,但两者处理效率总体来说非常接近,大家可以根据自己的需要抉择。

2、为啥asmx效率介么低?

这是一个SOA范畴的程序,遵守一些SOA的标准协议,服务端收到请求后返回的结果不能直接返回,还需要使用标准的SOAP协议组织好数据,类似一个XML文档结构的返回流,从分析结果图中也可以看出来,他返回的数据量比前者高出一位数,总之基于序列化和多余的XML文档数据等使得他处理请求的能力远不如前者。

https://www.cnblogs.com/eric-qin/p/4975390.html

ashx aspx asmx相关推荐

  1. aspx、ashx、asmx文件处理请求效率比较

    aspx.ashx.asmx文件处理请求效率比较 原文: http://www.cnblogs.com/liuche/p/3464051.html 你曾经是否苦恼过在系统中使用哪种文件编写客户端请求最 ...

  2. ashx和asmx的HttpContext

    ashx和asmx的HttpContext 使用JQURY的JSONP跨域AJAX老是报错,后来发现了是因为返回数据时没有带上POST的JSONP数据了,但是我明明使用了context.Request ...

  3. asp.net的处理机制(.ashx/.aspx)

    浅谈自己对asp.net 处理机制的图解 图解的内容有点多(包含asp.net 的处理机制和页面生命周期的重要事件,建议小伙伴把图片下载查看可好?) asp.net处理机制解说 当浏览器发送一条请求给 ...

  4. C#中[WebMethod]的用法,aspx、ashx、asmx

    在.net 3.5的情况下 前台JQuery做Ajax的时候,服务器端 (1)可以调用aspx.cs 中声明带有[WebMehtod]的public static 的方法(不需要自己手动添加web.c ...

  5. JQuery中ajax,get方法在asmx中的使用

    喜大普奔,今天终于完成了一个月前就想完成的一个代码实现.就是在点击一个按钮后禁用按钮,弹出正在操作的提示框,执行完事件后再启用按钮. 以前的想法是Ajax和aspx联用,这样,省页面,也不用对后台代码 ...

  6. Jquery Ajax 登录,服务端分别为 aspx,ashx,asmx

    Jquery Ajax 登录,服务端分别为 aspx,ashx,asmx 原文: http://www.cnblogs.com/StudyLife/archive/2012/02/22/2363174 ...

  7. Asp.net开发中甩掉.ashx .asmx

    一般,asp.net中,提供ajax请求响应的处理,需要借助于一般处理程序(*.ashx)或web服务(*.asmx),并且每一个ajax请求,都要建一个这样的文件,如此一来,如果在一个项目中ajax ...

  8. 使用ashx文件响应来自JQuery的JSON请求

    ashx文件是.net 2.0新加的文件类型(其实在.net 1.0下已经可用,但是没有公开提供). ashx文件和aspx文件有什么不同? 我们先新建一个ashx文件看看:   <%@ Web ...

  9. 访问ashx一般应用程序

    浏览器中的地址栏键入要访问页面的地址:回车(是和服务器软件打交道)----向服务器发送请求(以http协议为基础,服务器按照此协议解释理解接收到的数据),服务器接收到发送的请求,根据请求信息知道当前所 ...

最新文章

  1. oracler日期函数相差六个月_Oracle数据库之SQL单行函数---日期函数集锦
  2. Spring Data Solr教程:向所有存储库添加自定义方法
  3. FPGA资源不足导致vivado生成bit失败
  4. 2018年1月3日-江苏地税系统无法正常登陆的解决方案
  5. [bzoj5301][Cqoi2018]异或序列
  6. Java学习之路 之 异常总结篇
  7. 让本地网络与微软windows azure互通
  8. One by One [ 1 x 1 ] Convolution - counter-intuitively useful
  9. java字符转换成16进制_java 16进制与字符串直接相互转换
  10. 利用计算机解决鸡兔同笼问题,用计算机解决“鸡兔同笼”
  11. 无约束一维极值——黄金分割法
  12. 使用MeGUI的一些问题及个人解决方案,仅作个人备注使用。
  13. 2021中国医疗机器人产业创新大会参会指南
  14. recycle view设置item下划线
  15. React.createRef()
  16. 数据类型详解之字符串
  17. cent OS 更换源
  18. 光驱刻录软件提示需要计算机管理员权限,如何禁用光驱刻录功能、设置光驱只读而禁止刻录的方法...
  19. 2015年,我的创业记忆片段
  20. 1610: DNA序列---变异问题 - 模拟

热门文章

  1. 《统计学基础》——第四章(朴素贝叶斯)
  2. Aspose.Cells - 在任何平台上操作Excel电子表格
  3. 2021-01-09 matlab
  4. proxysql mysql_利用ProxySQL实现MySQL的读写分离
  5. 爬虫入门01 -- 爬取在线课程数据
  6. uniPush消息推送 ios证书配置
  7. 考江西计算机大专,江西财经大学自考大专(计算机及运用)报名时间
  8. Tasker 微信防撤回2.0
  9. 从事着项目管理工作。已通过pmp考试,是继续考ACP好还是NPDP好?
  10. 【人类高质量层次分析法教程】1分钟实现AHP+矩阵一致性调整