asp.net页面显示数据量大、显示很慢,postback就会非常慢。

monkey_zeng 2015-12-21 10:56:57
做了一个页面,显示数据比较多,第一次查询显示时间比较长,还可以接受。

之后需要在页面上做一些操作,比如改变某个按钮的Text,反应过程如同查询数据一样慢,

如果页面只有两三条数据,改变某个按钮的Text就很快,

有什么办法解决这个问题吗?
...全文
233 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋的红果实 2015-12-21
  • 打赏
  • 举报
回复
还不行的话,请描述出你的实现过程
秋的红果实 2015-12-21
  • 打赏
  • 举报
回复
是不是用gridview来显示查出的数据了,要是的话,改成用输出html表格。 使用gridview,运行时你打开页面源代码,发现有个__VIEWSTATE的隐藏域,后面是加密字符串;然后你多操作几次页面,再打开看这个__VIEWSTATE,体积是不是增大了好多,里面记录了gridview每次提交的事件等状态信息 你弹出的div层,完全可以在客户端运行,不加runat="server",客户端用getElementById(ClientID).style.display='block';显示出div,none就是隐藏;原因和.NET回发机制相关,所有加了runat="server"的控件,每次提交都会回发到服务器,你在Form_Load里,遍历Request.Form里的所有元素,就看到了,里面包括这些控件的ID,以及对用的值。 不加runat="server",第一次查询到的在div里显示的数据就不会发送到服务器,只有服务端生成这个div里的内容,发送给客户端,成了单向传递了 UpdatePanel功能有限,可以尝试使用,它只提交它包括的服务器控件内容 还有,要是你的数据量的确很大,那么只好分页显示了,我曾经碰到过:数据量超大,导致直接提示请求实体太大,无法显示,整个页面一片空白,设置web.config里的选项,都不管用。ASP.NET的功能有限 AJAX倒是个好东西,可短时间内不容易掌握,你可以去http://www.w3school.com.cn/看入门的东西
monkey_zeng 2015-12-21
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
你这个只能通过ajax了,可以的话直接上Jquery,否则就算你用UpdatePanel,问题点也会很多
半路出家,本想做个简单的公司内部使用的程序,jquery还没研究过, 其实页面逻辑也不复杂, 查询数据 修改 删除 记录标记 修改是用的div弹出层 记录多的时候,简单的div.visible=true;也要执行好久。
monkey_zeng 2015-12-21
  • 打赏
  • 举报
回复
引用 1 楼 guwei4037 的回复:
1、分页查询,不要一次性将所有数据查询显示 2、缓存 3、ajax局部提交,不要刷新整个页面
1:分页暂不考虑 缓存和ajax能否详细告知?
  • 打赏
  • 举报
回复
你这个只能通过ajax了,可以的话直接上Jquery,否则就算你用UpdatePanel,问题点也会很多
monkey_zeng 2015-12-21
  • 打赏
  • 举报
回复
#2楼, ispostback是必须有的,但是就是慢,想了解这个回传的机制, 是否整个页面都将回传,然后再传回到前端? 如果是这样,页面绝大部分数据不变化的情况下,只让部分信息在服务器与客户端传递?
monkey_zeng 2015-12-21
  • 打赏
  • 举报
回复
回复1楼 我使用的是scriptmanage控件, 如果包含在updatepanel控件外的按钮可以指定触发某个updatepanel, 如果包含在updatepanel控件内的动态添加的按钮,如何让他不刷新按钮所在的updatepanel?
正怒月神 版主 2015-12-21
  • 打赏
  • 举报
回复
数据分页。 判断是否回发,if(!ispostback) 因为事件会触发 load事件。所以Load事件里,如果只是单单修改button的 text。完全没必要再绑定数据。因此需要if(!ispostback)
全栈极简 2015-12-21
  • 打赏
  • 举报
回复
1、分页查询,不要一次性将所有数据查询显示 2、缓存 3、ajax局部提交,不要刷新整个页面
正怒月神 版主 2015-12-21
  • 打赏
  • 举报
回复
为何不分页呢? 数据量大的情况下,就应该考虑分页。 否则就算前台显示的下。可是现实的效果也很糟糕吧?

62,243

社区成员

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

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

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

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