当前位置:编程学习 > C#/ASP.NET >>

怎样解决网站中的卡顿问题

现在有一个模块需要到第三方网站去取数据生成报表,  页面总会在这里卡住 .并且在这个页面的程序没有完成时候,点击其他页面也没有反应.
我试图使用thread 来做,但是这样 页面就直接结束了,线程完成后的内容也传递不到浏览器.

我百度了一下 ,有人说 可以用 
AddOnPreRenderCompleteAsync(BeginAsyncOperation, EndAsyncOperation); //注册异步事件

方式来实现,但是我测试的结果依然是这个页面没有完成 ,其他页面也打不开.

我现在想实现,用户点击生成报表后,再点击其他页面,即使报表没有完成, 也不会产生卡顿现象, 最好浏览器还能知道这个报表生成的大致进度.
--------------------编程问答-------------------- --------------------编程问答-------------------- 用ajax或ifram来调用 --------------------编程问答-------------------- ThreadPool.QueueUserWorkItem
http://msdn.microsoft.com/zh-cn/library/kbf0f1ct.aspx --------------------编程问答--------------------
引用 2 楼 liuchaolin 的回复:
用ajax或ifram来调用

这样还是会卡住其他的页面访问 --------------------编程问答--------------------
引用 3 楼 dongxinxi 的回复:
ThreadPool.QueueUserWorkItem
http://msdn.microsoft.com/zh-cn/library/kbf0f1ct.aspx

这方法我已经试过了 不行 --------------------编程问答-------------------- 有高人吗 ? --------------------编程问答-------------------- 你试试ASP.NET Ajax中的UpdatePanel呢?

还有,尽量不要在网站中尝试使用多线程。本身HTTP请求就是“握手式”的操作,请求完毕,状态返回后,“当前线程”就结束了。 --------------------编程问答--------------------
引用 7 楼 wangyucai0915 的回复:
你试试ASP.NET Ajax中的UpdatePanel呢?

还有,尽量不要在网站中尝试使用多线程。本身HTTP请求就是“握手式”的操作,请求完毕,状态返回后,“当前线程”就结束了。

和UpdatePanel ajax 什么的都无关

根节是当前回话是一个单线程, 用通俗的话说 默认情况下 一个session  代表一个线程, 在这个过程中,一个页面的事务没有处理完, 其他页面的事务也无法处理. 但是使用thread 来创建多线程, 那么这个线程结束时候,找不到返回的目标 , HttpContext.Current.Response 为空 , 那么 也无法把处理后的数据传递给浏览器 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 9 楼 ayun00 的回复:


你已经属于高人了! --------------------编程问答--------------------
引用 10 楼 hou306010849 的回复:
Quote: 引用 9 楼 ayun00 的回复:



你已经属于高人了!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,