一个页面里放50个GridView控件绑定数据,打开速度慢,如何调整?
一个页面里放50个GridView控件绑定数据,打开速度慢,如何调整?
我是这么写的
private void dd1()
{
string sql = "select top 10 * from xxxx where xx='1' ORDER BY x_id DESC";
SqlDataReader mydr = SqlHelper.ExecuteReader(SqlHelper.cing, CommandType.Text, sql, null);
GridView1.DataSource = mydr;
GridView1.DataBind();
}
然后一直下去,共有50个GridView控件同时绑定数据,感觉打开有点慢;
不知如何优化?或者如何读取绑定数据为妙?
------解决方案--------------------那么多?看看能不能用下缓存,还有viewstate是不是必须要用,没用的就关掉吧。
------解决方案--------------------是不是要50个GridView 要同时加载。。不要的话就分批次加载。。
------解决方案--------------------什么需求要50个GridView的?
禁用viewstate
可尝试用stringbuild 输出html
有交互的话 用ajax
------解决方案--------------------50个GridView? 要显示时到后台取数据绑定 一个界面不可能同时显示50个吧
------解决方案--------------------首页用纯html吧
只是数据呈现 就简单多了
------解决方案--------------------首先把绑定的控件改为Repeater吧
Repeater循环HTML,而且代码干净,不产生垃圾代码
页面需要绑定内容过多的话其实有个好解决方法
分模块去绑定XML,页面直接读取XML
页面内容更改频繁的地方才去绑数据库,改动不大绑XML
------解决方案--------------------额滴神,这么多的,还没能见过,只做数据显示的话,就改用repeater吧,把viewstate给禁掉,数据可以适当的启用缓存 ,优化查询语句,尽量用存储过程吧,不过这些纯个人意见。。。
------解决方案--------------------建议用repeater控件。
------解决方案--------------------
------解决方案--------------------一个页面绑定50个gv,什么需要用这样的,其实妙用
------解决方案--------------------
------解决方案--------------------。。。。太多了吧。。
给你点建议:
本来就这么多,要用控件就用点轻量级的repeater
有些建议用AJAX去加载数据...
在不常变动的地方加缓存...
------解决方案--------------------1,使用页面级缓存,直接用官方的;
2,使用异步编程方式,并发读取绑定操作(不同异步编程,可以谷歌一个asp.net异步编程)。
------解决方案--------------------那么多,gv这个控件本来就是很重量级的,建议LZ还是直接拼接html吧
------解决方案--------------------写个生成html代码的工具吧。。。。。。。我擦50个gridview