asp.net页面显示数据量大、显示很慢,postback就会非常慢。
做了一个页面,显示数据比较多,第一次查询显示时间比较长,还可以接受。
之后需要在页面上做一些操作,比如改变某个按钮的Text,反应过程如同查询数据一样慢,
如果页面只有两三条数据,改变某个按钮的Text就很快,
有什么办法解决这个问题吗?
之后需要在页面上做一些操作,比如改变某个按钮的Text,反应过程如同查询数据一样慢,
如果页面只有两三条数据,改变某个按钮的Text就很快,
有什么办法解决这个问题吗?
...全文
请发表友善的回复…
发表回复
秋的红果实 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
- 打赏
- 举报
半路出家,本想做个简单的公司内部使用的程序,jquery还没研究过,
其实页面逻辑也不复杂,
查询数据
修改
删除
记录标记
修改是用的div弹出层
记录多的时候,简单的div.visible=true;也要执行好久。
monkey_zeng 2015-12-21
- 打赏
- 举报
1:分页暂不考虑
缓存和ajax能否详细告知?
娃都会打酱油了 2015-12-21
- 打赏
- 举报
你这个只能通过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
- 打赏
- 举报
为何不分页呢?
数据量大的情况下,就应该考虑分页。
否则就算前台显示的下。可是现实的效果也很糟糕吧?