关于网友提出的“请立即停止使用微波炉 有使用过异步页的高手请进”问题疑问,本网通过在网上对“请立即停止使用微波炉 有使用过异步页的高手请进”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:请立即停止使用微波炉 有使用过异步页的高手请进
描述: 还是举例比较容易说明:现在我页面上有两个GridView:GridView1、GridView2,现在我想实现的功能是从数据库里的两个表table1、table2中查询数据,将查询结果分别绑定到GridView1、GridView2。
第一:按照同步的方式,代码如下:
void GridView1Bind(){...}
void GridView2Bind(){...}
我们知道这个过程都是在页面生命周期的Load阶段来完成的,也就是图中的PreLoad事件跟LoadComplete事件之间执行的,假设方法GridView1Bind()过程耗费1秒,GridView2Bind()耗费了1秒,那么到页面显示时总共花费1+2=3秒时间(暂不考虑别的事件阶段花费时间),然后继续执行到达页面的Render阶段,然后整个页面显示,真个过程花费3秒;
第二:按照异步页方式:
假设GridView1()方法仍然在Load事件中执行,花费了1秒时间,同时我们注册AddOnPreRenderCompleteAsync()事件,然后在这个事件里面我们执行方法GridView2Bind(),但是我们知道AddOnPreRenderCompleteAsync事件是在PreRender和PreRenderComplete时间之间执行的,也就是说整个生命周期也是在页面Page阶段执行完GridView1Bind()后进入Render阶段才执行GridView2Bind()方法,然后最后呈现,这样看来整个过程也花费了3秒时间,这样看来时间并没有节省,那异步到底有什么优势?

解决方案1: 异步在装载的过程不会比同步省时间
异步是为了能在前端回发到后端装载完成这个时间段中,前端依然是可以编辑,提高用户体验
但是,在这个时候,貌似前端不可控,尤其是前端的数据需要到后端验证的时候,
所以我一般都是用同步
解决方案2: 异步在数据量小的时候看不出来优势。
解决方案3: 页面一你做10万次循环,再试试
解决方案4: 用户体验是一方面,主要的还是过程的安排,也不能说不影响时间
比如你有两个任务,如果不使用异步,你必须先完成一个,再完成另一个,如果这两个任务,互不相关,明显的浪费时间
最好让他们同时执行。
还有,异步执行再单处理器的计算机得不到上面说的好处,因为涉及到任务间的切换,反而浪费时间。只有再多处理器才会达到效果。
在b/s下,情况更加复杂,有时使用异步确实改善了用户体验,但可能消耗更多的服务器资源。
早上还听新闻里说intel 认为现有的软件更不上硬件的发展,其中主要就是并行处理的问题。
解决方案5: 建议lz先明白什么叫异步,异步主要不是为了节省时间。
解决方案6: 只有大型的才能试出快慢,多加几个循环测一下,
以上介绍了“请立即停止使用微波炉 有使用过异步页的高手请进”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3267288.html