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

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

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

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

我现在想实现,用户点击生成报表后,再点击其他页面,即使报表没有完成, 也不会产生卡顿现象, 最好浏览器还能知道这个报表生成的大致进度.
...全文
355 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayun00 2014-01-03
  • 打赏
  • 举报
回复
用笨方法解决了 ,但是 还是想要有一个优雅的方式
ayun00 2013-12-16
  • 打赏
  • 举报
回复
引用 10 楼 hou306010849 的回复:
[quote=引用 9 楼 ayun00 的回复:]
你已经属于高人了![/quote]
Im_Sorry 2013-12-16
  • 打赏
  • 举报
回复
引用 9 楼 ayun00 的回复:
你已经属于高人了!
ayun00 2013-12-16
  • 打赏
  • 举报
回复
ayun00 2013-12-13
  • 打赏
  • 举报
回复
引用 7 楼 wangyucai0915 的回复:
你试试ASP.NET Ajax中的UpdatePanel呢? 还有,尽量不要在网站中尝试使用多线程。本身HTTP请求就是“握手式”的操作,请求完毕,状态返回后,“当前线程”就结束了。
和UpdatePanel ajax 什么的都无关 根节是当前回话是一个单线程, 用通俗的话说 默认情况下 一个session 代表一个线程, 在这个过程中,一个页面的事务没有处理完, 其他页面的事务也无法处理. 但是使用thread 来创建多线程, 那么这个线程结束时候,找不到返回的目标 , HttpContext.Current.Response 为空 , 那么 也无法把处理后的数据传递给浏览器
Wang-Yucai 2013-12-13
  • 打赏
  • 举报
回复
你试试ASP.NET Ajax中的UpdatePanel呢? 还有,尽量不要在网站中尝试使用多线程。本身HTTP请求就是“握手式”的操作,请求完毕,状态返回后,“当前线程”就结束了。
ayun00 2013-12-13
  • 打赏
  • 举报
回复
有高人吗 ?
ayun00 2013-12-12
  • 打赏
  • 举报
回复
引用 3 楼 dongxinxi 的回复:
ThreadPool.QueueUserWorkItem http://msdn.microsoft.com/zh-cn/library/kbf0f1ct.aspx
这方法我已经试过了 不行
ayun00 2013-12-12
  • 打赏
  • 举报
回复
引用 2 楼 liuchaolin 的回复:
用ajax或ifram来调用
这样还是会卡住其他的页面访问
  • 打赏
  • 举报
回复
md5e 2013-12-12
  • 打赏
  • 举报
回复
用ajax或ifram来调用
ayun00 2013-12-12
  • 打赏
  • 举报
回复

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧