ASP 3.0高级编程(四十三)

2016-01-29 19:17 3 1 收藏

ASP 3.0高级编程(四十三),ASP 3.0高级编程(四十三)

【 tulaoshi.com - ASP 】

  9.3.5 数据高速缓存
       首先需要注意的是,数据高速缓存与记录集高速缓存虽然都用于改善性能,但两者是无关的。数据高速缓存是临时的数据存储区,允许使用高速缓存中的数据,而不是重新生成新的数据。这只适用于那些不经常改动但多次被访问的数据。
       在ASP中一个最简单的缓存数据的方法是使用Application和Session范围的变量。例如,假设有一些需要选择书类型的网页。正常情况下,可能会创建一个含有以下函数的包含文件。
<%
Function BookTypes()

  Dim rsBookTypes
  Dim strQuote

  strQuote = Chr(34)

  Set rsBookTypes = Server.CreateObject ("ADODB.Recordset")

  ' Get the book types
  rsBookTypes.Open "usp_BookTypes", strConn

  Response.Write "<SELECT NAME=" & strQuote & lstBookType & strQuote & ""
  While Not rsBookTypes.EOF
    Response.Write & "<OPTION" & rsBookTypes("Type") & "</OPTION"
    rsBookTypes.MoveNext
  Wend
  Response.Write & "</SELECT"

  rsBookTypes.Close
  Set rsBookTypes = Nothing

End Function
%
这仅仅是调用一个存储过程,从而得到书的类型,同时创建一个SELECT列表。上述代码的缺点在于每次调用该函数都必须访问数据库。因此,重新修改这个函数。
<%
Function BookTypes()

  Dim rsBookTypes
  Dim strQuote
  Dim strList

  ' See if the list is in the cache
  strList = Application("BookTypes")
  If strList = "" Then
    ' Not cached, so build up list and cache it
    strQuote = Chr(34)

    Set rsBookTypes = Server.CreateObject ("ADODB.Recordset")

    ' Get the book types
    rsBookTypes.Open "usp_BookTypes", strConn

    strList = "<SELECT NAME=" & strQuote & lstBookType & strQuote & ""
    While Not rsBookTypes.EOF
      strList = strList & "<OPTION" & rsBookTypes("type") & "</OPTION"
      rsBookTypes.MoveNext
    Wend
    strList = strList & "</SELECT"

    rsBookTypes.Close
    Set rsBookTypes = Nothing

    ' Check the list
    Application("BookTypes") = strList
  End If

  BookTypes = strList

End Function
%
这段代码不只是打开记录集,它检查Application变量BookType的值是否为空。如果不为空,则使用该变量的内容。如果为空,则像以前一样打开记录集。显然,一旦第一个人运行了这一例程,便缓存了数据,因此这只对那些不常变化的数据是有用的。
如果想在用户基础上缓存数据,可以使用Session范围的变量,但这里必须注意Session存在有效期。过期后会话层变量将和会话一起取消,代码便有可能终止运行。
利用Web Application Stress(WAS)工具,得到了表9-4的分析结果:
表9-4  利用WAS工具得到的分析结果
方 法
页面点击次数

没有高速缓存
190

有高速缓存
11000

很明显性能有所改善。但不要采用上述方法缓存一切内容。毕竟,这种方法只适用于那些已经格式化后用于显示的数据。除此之外,还要考虑到如果Web服务器只为特定的一个人服务,那几乎不是一个典型的Web服务器的用法。使用WAS可以在一个服务器上模拟多个用户,这样可以更实际地测试应用程序。
通过模拟一定数量的用户,Web Application Stress工具可以对Web页面进行承受力测试。该工具有一个简单的图形界面,使用起来非常容易。可以从http://homer.rte.microsoft.com/获得更多的信息,也可以下载该工具。
高速缓存对象
若要缓存未格式化过的数据该怎么办?可以在不同地

来源:http://www.tulaoshi.com/n/20160129/1508931.html

延伸阅读
标签: ASP
  1.    操作HTTP报头 我们已经在几处见到ASP如何创建或修改在响应页面请示时被发送到客户的HTTP报头。在Response对象中有几个属性和方法可帮助我们做到一点。下面是一些报头方法: · 控制缓存和有效期。 · 创建状态和定制的HTTP报头。 · 指定MIME类型或内容类型。 · 添加PICS标签。 接下来将简要地研究每一个方...
标签: ASP
  第3章 ASP应用程序与会话 在前面的章节中介绍了ASP提供的访问一个客户请求和产生响应的方法,本章将讨论ASP的另两个对象。就是Application和 Session对象。这两个对象不是直接地与请求和响应的管理有关,而是更多地与ASP网页运行环境的管理相关。 与建立Web站点或Web应用程序有关的共同问题之一,是使用HTTP协议时没有状态。...
标签: ASP
  2.  创建Variant数组 在Session和Application对象中创建和使用一个Variant数组来存储值的方法目前尚未讨论,在这里作为一个非常有用的技术进行讨论。正如已经看到的那样,一个Variant数据类型可以包含一个数组,而不仅仅是一个值。 一个数组只是在内存的一个连续区域中以指定的次序存储二进制值的一个长行。要安排Variant,...
标签: ASP
  5.4.1 FileSystemObject对象成员概要        FileSystemObject对象提供一个属性和一系列方法,可用它们来操纵FileSystemObject对象实现的一些从属对象。这里提供了全部的内容概要,然后介绍每一个从属对象。 1.  FileSystemObject的属性 FileSystemObject对象只有一个属性,它用于得到当...
标签: ASP
  (1)  遍历Contents集合的代码 为了遍历Contents集合,可使用一个For Each ... Next结构。集合中的每一项可以是一个简单的Variant类型变量、一个Variant数组或者一个对象的引用。因为需要对每种类型的值进行不同的处理,所以就不得不对每一个进行检查来判别其类型。 在VBScript中可使用VarType函数完成这个工作。这里使用IsObj...

经验教程

953

收藏

9

精华推荐

ASP 3.0高级编程(十二)

ASP 3.0高级编程(十二)

free潇然吹雪

ASP 3.0高级编程(十五)

ASP 3.0高级编程(十五)

半步II天涯

ASP 3.0高级编程(四)

ASP 3.0高级编程(四)

神仙不绝

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部