ASP.net 2.0的发布给广大Web开发人员带来了福音,特别是其中新增加的很多控件,比如GridView、FormView、DetailView等,极大地提高了开发人员的效率。然而,我曾是一名熟练的ASP开发人员,对HTML、CSS都相当熟悉,所以对这些控件的语法很是不习惯,同时,对这些控件的性能和灵活性表示怀疑。

    GridView可以非常方便的管理数据分页,只用设置几个简单的属性即可,为了了解其自动分页的性能,我做了一个测试。

    第一步,打开SQL Server Express,建立一个数据表TestPaging,如下图,id字段是主键,postdate字段默认值是当前的时间。
ASP.net中数据分页是由自己管理好还是由控件管理好?

    第二步,向表中添加10万行数据,呵呵,数据少了看不出效果,如下图所示的SQL语句:
ASP.net中数据分页是由自己管理好还是由控件管理好?

    第三步,测试使用服务器控件自动管理分页的性能,建立一个页面TestGridViewPaging.aspx,在页面中添加一个SqlDataSource控件和一个GridView控件,再设置几个简单的属性,不到一分钟就完工,真的是简单方便啊。如下图:
ASP.net中数据分页是由自己管理好还是由控件管理好?

    下面是IDE自动生成的代码,我们把页面的跟踪功能打开:

 1>


    第四步,测试,结果发现该页面首次运行时需花时20多秒,如下图:
ASP.net中数据分页是由自己管理好还是由控件管理好?
ASP.net中数据分页是由自己管理好还是由控件管理好?

随便翻页,页面的运行时间都是8到9秒,如下:
ASP.net中数据分页是由自己管理好还是由控件管理好?


    第五步,建立TestCustomPaging.aspx页面,自己编写翻页代码,直接使用ADO.net编程,数据显示使用了DataGrid控件,同时,我再页面中使用了三个隐藏控件,分别用于保存每一页的第一条记录和最后一条记录的id以及当前页号,下面测试,结果发现不管是首次显示,还是上下翻页,都不超过0.05秒,如下图:
ASP.net中数据分页是由自己管理好还是由控件管理好?
ASP.net中数据分页是由自己管理好还是由控件管理好?

    只有跳转到特定页面时速度稍慢,因为使用了嵌套查询,我主要是偷懒,如果使用存储过程的话,速度应该更快,如下图:
ASP.net中数据分页是由自己管理好还是由控件管理好?

结论:使用微软提供的服务器控件,开发效率高,但是在访问数据量大的数据库时,速度非常慢,我想,该控件可能是每次访问时都将数据全部从数据库中取出,保存到内存中,如果数据量继续增加,或者访问人数增多,服务器会不会当机呢?而我自己编写的代码,每次只访问一个页面的数据,速度快,且性能不会随数据量增大而下降,更可以提供如下所示的更人性化的用户界面:
ASP.net中数据分页是由自己管理好还是由控件管理好?
但是,我自己编写代码,从设计到调试完成,花了约2小时的时间。

开发效率: 服务器控件/自己编写代码 = 1分钟/2小时 = 1/120
运行效率: 服务器控件/自己编写代码 = 9秒/0.05秒 = 180/1

最后,我想问一下,各位有开发经验的大侠们,你们平时的开发中,是使用控件多一些,还是自己写代码多一些?

下面是我自己编写的页面的代码:

  1

相关文章:

  • 2022-02-21
  • 2021-12-10
  • 2021-07-22
  • 2021-07-11
  • 2021-05-01
  • 2021-07-31
  • 2022-02-20
  • 2021-11-02
猜你喜欢
  • 2021-07-27
  • 2021-11-27
  • 2021-12-30
  • 2021-07-08
  • 2021-12-08
  • 2021-11-28
  • 2021-08-29
相关资源
相似解决方案