怎样解决网站中的卡顿问题
现在有一个模块需要到第三方网站去取数据生成报表, 页面总会在这里卡住 .并且在这个页面的程序没有完成时候,点击其他页面也没有反应.我试图使用thread 来做,但是这样 页面就直接结束了,线程完成后的内容也传递不到浏览器.
我百度了一下 ,有人说 可以用
AddOnPreRenderCompleteAsync(BeginAsyncOperation, EndAsyncOperation); //注册异步事件
方式来实现,但是我测试的结果依然是这个页面没有完成 ,其他页面也打不开.
我现在想实现,用户点击生成报表后,再点击其他页面,即使报表没有完成, 也不会产生卡顿现象, 最好浏览器还能知道这个报表生成的大致进度.
--------------------编程问答-------------------- --------------------编程问答-------------------- 用ajax或ifram来调用 --------------------编程问答-------------------- ThreadPool.QueueUserWorkItem
http://msdn.microsoft.com/zh-cn/library/kbf0f1ct.aspx --------------------编程问答--------------------
这样还是会卡住其他的页面访问 --------------------编程问答--------------------
这方法我已经试过了 不行 --------------------编程问答-------------------- 有高人吗 ? --------------------编程问答-------------------- 你试试ASP.NET Ajax中的UpdatePanel呢?
还有,尽量不要在网站中尝试使用多线程。本身HTTP请求就是“握手式”的操作,请求完毕,状态返回后,“当前线程”就结束了。 --------------------编程问答--------------------
和UpdatePanel ajax 什么的都无关
根节是当前回话是一个单线程, 用通俗的话说 默认情况下 一个session 代表一个线程, 在这个过程中,一个页面的事务没有处理完, 其他页面的事务也无法处理. 但是使用thread 来创建多线程, 那么这个线程结束时候,找不到返回的目标 , HttpContext.Current.Response 为空 , 那么 也无法把处理后的数据传递给浏览器 --------------------编程问答-------------------- --------------------编程问答--------------------
你已经属于高人了! --------------------编程问答--------------------
补充:.NET技术 , ASP.NET