下面是IDE自动生成的代码,我们把页面的跟踪功能打开:
第四步,测试,结果发现该页面首次运行时需花时20多秒,如下图:
随便翻页,页面的运行时间都是8到9秒,如下:
第五步,建立TestCustomPaging.aspx页面,自己编写翻页代码,直接使用ADO.net编程,数据显示使用了DataGrid控件,同时,我再页面中使用了三个隐藏控件,分别用于保存每一页的第一条记录和最后一条记录的id以及当前页号,下面测试,结果发现不管是首次显示,还是上下翻页,都不超过0.05秒,如下图:
只有跳转到特定页面时速度稍慢,因为使用了嵌套查询,我主要是偷懒,如果使用存储过程的话,速度应该更快,如下图:
结论:使用微软提供的服务器控件,开发效率高,但是在访问数据量大的数据库时,速度非常慢,我想,该控件可能是每次访问时都将数据全部从数据库中取出,保存到内存中,如果数据量继续增加,或者访问人数增多,服务器会不会当机呢?而我自己编写的代码,每次只访问一个页面的数据,速度快,且性能不会随数据量增大而下降,更可以提供如下所示的更人性化的用户界面:
但是,我自己编写代码,从设计到调试完成,花了约2小时的时间。
开发效率: 服务器控件/自己编写代码 = 1分钟/2小时 = 1/120
运行效率: 服务器控件/自己编写代码 = 9秒/0.05秒 = 180/1
最后,我想问一下,各位有开发经验的大侠们,你们平时的开发中,是使用控件多一些,还是自己写代码多一些?
下面是我自己编写的页面的代码: