巧用缓存提高asp程序的性能

  <!--为了提高Asp程序的性能,人们常常将经常使用的数据缓存在 Application,

  但是你修改了数据库后怎么让application更新呢,本文给你提供了一个合理的解决办法,如果谁有更好的算法,请跟帖讨论一下,谢谢

  -->

  <%

  Class wawa_app_getrows

  public Function wawa_Get_List(strapp,strconn,strsql)

  '********************************

  '功能:从Application中提取数组,如果application中的数据为empty值的时候再调用wawa_Get_Rows()函数来给application赋值.

  ' ,你可以在修改数据库的时候把相应的application值清空成empty,这就浏览的时候就会自动更新application了

  ' 如果你更新了数据库(比如说添加,修改或者删除了数据)那么在修改数据库后把相应的application变量去掉,

  ' 用下面的一条语句来实现清空指定的application值,其中strapp参数是要去掉的application变量名

  ' application.Contents.Remove(strapp)

  ' www.knowsky.com

  '********************************

  Dim wawa

  wawa = Application(strapp)

  If isempty(wawa) Then

  wawa = wawa_Get_Rows(strconn,strsql)

  Application(strapp) = wawa

  End If

  wawa_Get_List = wawa

  End Function

  public Function wawa_Get_Rows(strconn,strsql)

  '********************************

  '功能:从数据库里读取记录并用getrows方法

  ' 把记录保存成一个数组

  '

  '********************************

  Dim rs_wawa

  Set rs_wawa = CreateObject("ADODB.Recordset")

  rs_wawa.Open strsql,strconn,,1,1

  wawa_Get_Rows = rs_wawa.GetRows()

  rs_wawa.Close

  Set rs_wawa = Nothing

  End Function

  End Class

  %>

  <!-- 下面举个例子来说明上面的那个类怎么使用 -->

  <%

  dim strapp,strsql,strconn

  strapp="xinwendongtai"

  strsql="select top 5 id,title from wen where lei=161 order by id desc"

  strconn="Driver={sql server};server=192.168.0.110;database=new;uid=sa;pwd=sa;"

  set wawa_temp=new wawa_app_getrows

  arr_xinwendongtai=wawa_temp.wawa_Get_LIst(strapp,strconn,strsql)

  %>

  <table width="100%" border="0" cellspacing="1">

  <% If ubound(arr_xinwendongtai)<>0 Then %>

  <% for i=0 to ubound(arr_xinwendongtai,2)-1 %>

  <tr>

  <td><a href="view.asp?id=<%= arr_xinwendongtai(0,i) %>"><%= arr_xinwendongtai(1,i) %></a></td>

  </tr>

  <% next %>

  <% Else %>

  <tr>

  <td>还没有新闻呢</td>

  </tr>

  <% End If %>

  </table>