日期:2014-05-16  浏览次数:20431 次

【老鸟】进来谈谈!处理同样业务逻辑,用【Ajax】向ashx传递数据与直接用【aspx】,哪个效率高?各自优势?
【老鸟】进来谈谈!处理同样业务逻辑,用【Ajax】向ashx传递数据与直接用【aspx】,哪个效率高?各自优势?

如果用前者,好处:
a,界面代码与后台业务代码的分离,提高可移植性;
b.不用服务器控件也可以向服务器传递数据了(把form的action属性设为ashx地址)
缺点:
暂时没想到。

应用:
如,通常网站的注册页面,如果用前者,日后如果要改到其他项目,前端HTML可以根本不用改,只要把ashx地址更换即可。
------解决方案--------------------
ashx高  因为aspx是页面。。加载的话内容很多。

------解决方案--------------------
aspx 页面基本的。他会有aspx页面解析 过程
------解决方案--------------------
引用:
Quote: 引用:

aspx 页面基本的。他会有aspx页面解析 过程


那平时看一些ASP.NET架构的网站,为什么很少见到是向ashx提交数据呢?(即使不需要有页面返回时也很少见,用抓包工具看到,是302转向了的)


这问题没什么可讨论的。效率不取决于这个。你实际是在问ajax效率高还是全页面刷新效率高。但是除非你做的是SPA(single page application),一般来说网站是不需要全程ajax的。不管你是全页面刷新也好,ajax也好,你都是在服务器端处理http请求罢了。如果真要说区别,那ajax必然返回的数据量要小于全页面刷新,那么至少从数据传输量角度考虑,ajax要更“先进”一些。
------解决方案--------------------
引用:
aspx 页面基本的。他会有aspx页面解析 过程


是的!

asp.net会进行冗长的初始化、创建Page对象、进行所有页面生命周期解析和事件触发等等行为。

对于ajax的数据访问,使用aspx是因为不懂ashx,跟技术本身无关。
------解决方案--------------------
ashx效率更高,因为请求aspx页面asp.net要生成对应page类一个的对象,执行的代码更多
------解决方案--------------------
一般建议 使用 【Ajax】 ,理论上速度会快,因为少做了很多事情,但是实际上呢,有空做个测试看看。

就好比轿车快还是火车快?

Ajax很简单,就好比 轿车,aspx好做很多事情,就好比火车。

不过呢,你该坐轿车就去做轿车,该做火车就去做火车。一般不会去考虑他们的速度到底如何。

========

为啥用aspx?因为ashx是后出来的,有些老框架不爱改。


------解决方案--------------------
做了一个简单的测试,

建立一个空的a.aspx ,就是默认的,自动创建后没有做任何修改

在建立一个a.ashx,也是默认的。

用chrome f12,看看这两个页面的访问情况,请看下图





服务器端的处理时间都是1ms。


从步骤上看,aspx肯定多种很多事情,但是从处理时间上看,单次操作几乎没啥区别。