由于业务需要,我需要在一个for循环里面做ajax请求,为了方便我我使用了当前页面aspx作为处理程序。
但我发现该aspx页面并不是真正的异步请求,好像是一个请求完成后才会发送下一次请求,
我又使用了ashx做了比较,发现ashx比aspx作为处理程序快多了,
请问有什么办法,可以让aspx作为处理程序是异步请求的呢。
代码跟平常的代码都差不多
//循环数组什么的 //发送ajax请求 $.ajax({ url:location.href data:{"type":"getSorce","a":"b"} }) .......
pageload中 获取request["type"] 根据不同的type使用不同的方法 方法返回json Response.clear(); Response.write(json); Response.end(); //什么的
我怎么觉得你是你的ajax请求的问题呢?你设置下参数asyan:true
ajax默认async就是true
只是我发现aspx作为ajax处理程序,比ashx慢多了,似乎是同步请求的。
@Plusone: ashx比aspx快是应该的,aspx要走的流程太长了。aspx本身也是异步的,这个慢不应该是同步造成的。
发现ashx比aspx作为处理程序快多了,
ashx比aspx更加的轻量
想一楼说的,会慢一些,aspx有自己的生命周期。。但你的请求依然是异步的,并且aspx也是异步响应的!
比如我调试吧 ,ashx调试,断点在方法里,ashx是方法没走完下个请求断点就开始了。
aspx里调试,是这个方法走完,下个断点请求才开始。
这个怎样解释好
有这么大的差别吗????
aspx实现了System.Web.UI.Page接口,ashx实现了IHttpHandler接口,WebService.asmx也可以接受异步请求,它实现了System.Web.Services.WebService 接口。
我觉得你可以对比这三个接口,如果aspx再继承IHttpHandler接口,这只是我的思路,不知道对不对,希望能帮到你一点吧。