您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp >> 正文

在ASP中改善动态分页的性能

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-24 我要参与讨论

 

  概 述

  现在有不少介绍利用ASP实现动态分页的文章,方法大同小异,就是每次利用ADO返回原始数据满足条件记录集中的指定页。但在实际工程应用中,原始数据量通常很大,原始数据的加工比较慢,如果每次换页原始数据都要加工一次,则会严重影响应用程序运行的性能。

  解决上述问题主要有两种途径:一种途径是将查询条件相对固定,利用相对固定的查询条件对原始数据进行加工,生成一个小数据量的中间库,每次查询都对中间库进行操作。这样虽然会提高程序的性能,但会影响程序的灵活性,而且 Server端还需定时对原始数据进行加工维护。另一个途径是在Server端保存查询的结果。这样虽然不能改善查询的性能,但Client端换页时Server端能够很快响应。第一种途径的实现比较简单,本文介绍第二种途径的实现方法。

  实现方法

  将Server端的查询结果保存在一个动态数组中,即在 Session_OnStart过程中声明一个二维的动态数组。当Server端收到Client端提交的申请后,首先判断申请是条件查询还是换页,如是条件查询则判别查询条件是否与上次提交的查询条件不同,如不同则执行查询,将查询结果保存在该数组中,然后向Client端返回第一页的内容,否则直接从该数组中返回相应页的内容。

  程序实现

  1.定义二维数组及其他变量

  Sub Session_OnStart
  dim TempDb()
  redim Preserve TempDb(1,2)
  session(“StoredArray") = TempDb
  ’定义一个Session数组
  session(“iPageCount")=0
  session(“iPageNo")=0
  ......
  End Sub

  2.调用存储过程返回数据

 Sub GetRecordSet(strBbmc,strKssj ,
  strZzsj ,strNodeCode ,strFxzl )
  ''参数为报表名称和各个限制条件
  select case strBbmc
  case “交易汇总表"
  strCnn=“PROVIDER=MSDASQL;dsn=sqldb;
  uid=sa;pwd=123456;database=vlog;"
  Set objcnn=Server.CreateObje(“ADODB.Connection")
  objcnn.CommandTimeout = 9999999
  objcnn.ConnectionTimeout = 99999999
  objcnn.CursorLocation = adUseClient
  objcnn.Open strCnn ''打开连接
  Set objRs =Server.CreateObject
  (“ADODB.Recordset")
  o

[1] [2] [3] [4] 下一页

在google里搜索更多在ASP中改善动态分页的性能

Google
Web www.51ec.org
  • 上一篇信息学院:

  • 下一篇信息学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    我来说两句 对此文章发表了评论
      昵 称: *必填    ·注册用户·
      评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
    评 论
    内 容

     
    评论列表 (最新 评论仅限网友观点!)

    供求信息




    | 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明