FineUI 官方论坛
标题:
如果grid的数据库会保存在viewstate中,那是不合理的
[打印本页]
作者:
txw999
时间:
2014-8-4 13:46
标题:
如果grid的数据库会保存在viewstate中,那是不合理的
最近在看:
[原创]ExtAspNet秘密花园(十六) — 表格之排序与分页
http://www.cnblogs.com/sanshi/archive/2012/10/05/2712170.html
其中有一如下一段描述:我想问的是,
现在v4.1还是用这个机制吗?
如果还是这样的机制,我觉得是不合理的,因为没有必要把所有数据保存在viewstate中,这一点,无论是原生的asp.net,还是类似于devexpress,telerik都没有在viewstate中保存grid的数据源。因为数据源应该在回传后,在服务端再次获取,或者保存在服务端。
===原文的描述===========================
为什么说内存分页在大数据时性能差?
其实原因前面已经提到了,
主要是因为内存分页时会把所有表格数据保存到页面的状态视图中(ViewState),
导致页面大小迅速增加,从而增加网络下载上载的时间,并且减慢了页面的渲染速度。
虽然ExtAspNet放弃了在ViewState中保存数据,从而可以在Ajax的环境中减少网络的数据传输量,但是内存分页时所有的表格数据还是要保存下来,供下次分页时使用。
拿本篇文章中的内存分页示例,在用户点击下一页时,通过FireBug可以看到这次HTTP Post请求:
......
......
由此可见,
全部的11条数据在每次页面回发时都会作为HTTP Post的参数上传到服务器
,从而在大数据量的情况下导致页面性能急剧下降。
作者:
sanshi
时间:
2014-8-4 14:00
原生的ASP.NET的GridView是将表格数据保存在ViewState的。
因为原生ASP.NET是不支持AJAX的,因此每次回发时页面都重新渲染,如果不将表格数据保存在ViewState,并且在回发时不进行重新绑定,回发后表格就会被清空。这是道理,你也可以自己写个例子测试下。
这个地方以后FineUI会有进一步改进。
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4