欢迎光临
我们一直在努力

以前搜集的一些资料—服务端和客户端的ASP缓存技术

建站超值云服务器,限时71元/月

                    谈谈asp中的缓存技术
使用asp中的缓存技术可以很大程度上提高你的网站性能,
其实这些实现方法是非常的简单,它将说明如何在服务器上的缓存是如何工作
以及你如何使用一种被称为断开连接的ado连接技术。
在介绍这些技术之前先说明一下到底什么是asp的缓存技术。
所谓缓存其实就是在内存中开辟一个用来保存数据的空间,使用缓存你就不用
频繁的访问你保存在硬盘上的数据了,灵活的使用缓存你就免去了心疼的看着
可怜的硬盘饱受读数据时的折磨了。当你一旦执行了一个查询动作,并且将查询
结果放入缓存中后,你就可以很迅速的重复访问这些数据了。而如果你不把数据
放入缓存的话,当你再次执行这个查询时,服务器会将进程耗费在从数据库中
获取并排序上了。
当数据保存在缓存中时,再次查询时耗费的时间主要是在内容中搜索应该
显示数据的时间了。这也就是说,我们不应该把经常需要改变的数据放到服务端
的缓存中,我们应该把改变少,但是又需要经常访问的数据放到缓存中。

现在我们先讨论asp在服务端使用缓存的技术,过会再讨论asp如何在客户端使用
缓存的技术。
当你有大量的数据(静态的,就是说变动比较少的)需要显示给客户端时,你就可以考虑使用
服务端的缓存技术了。这种技术尤其适用于那些显示风格一致性比较强的网站(呵呵,对于
非主流的网站可不好用的说。)
其实实现方法特别的简单,大家只要看看下面这个简单的例子就明白了。
这是一个用来显示书籍分类的例子程序
  displaybooks.asp文件:

  <%@ language=javascript %>
  <html>
  <body>
  <form method=post>
  书籍分类; <%= getbookslistbox() %>
  <p>
  <input type=submit>
  </form>
  </body>
  </html>
  <%
  function getbookslistbox()
  {
    bookslistbox = application("bookslistbox")
    if (bookslistbox != null) return bookslistbox;
    crlf = string.fromcharcode(13, 10)
    bookslistbox = "<select name=books>" + crlf;
    sql = "select * from books order by name";
    cnnbooks = server.createobject("adodb.connection");
    cnnbooks.open("books", "admin","");
    rstbooks = cnnbooks.execute(sql);
    fldbookname = rstbooks("bookname");
    while (!rstbooks.eof){
      bookslistbox = bookslistbox + "  <option>" +
        fldbookname + "</option>" + crlf;
      rstbooks.movenext();
    }
    bookslistbox = bookslistbox + "</select>"
    application("bookslistbox") = bookslistbox
    return bookslistbox;
  }
  %>
很简单把,其实就是用了很简单的application技术
而且就一句话的不同:
  application("bookslistbox") = bookslistbox                
你可以验证一下你就会发现服务器上的请求数量会降低不少的。这种情况
尤其适合与那些更新不是很频繁的网站内容,例如你一天(或则很长时间)
只更新一次。
下面再讨论一种客户端的缓存技术
这种技术也叫断开连接的ado连接技术(翻译水平太次,听上去怎么这么别扭)

这种技术主要使用在用来保存用户个人信息,例如用户的密码,代号等等上面。
它主要使用了ado的一些属性。同时也回答了一些网友曾经提到过的能否在
applocation中使用ado对象的问题。解释不清楚,下面让代码来发言:
文件global.asa:
  <!–metadata type="typelib"
     file="c:\program files\common files\system\ado\msado15.dll"–>
  <script language=vbscript runat="server">
  sub application_onstart
    sql = "select username, password from userinfo"
    cnnusers = "dsn=user"
    set rsusers = server.createobject("adodb.recordset")
    注意下面这两句话,就是用来实现那个叫可用的断开连接的ado技术
    rscustomers.cursorlocation = aduseclient
    rscustomers.open sql, cnnadvworks, adopenstatic, adlockreadonly
     断开recordset的和数据库的连接
    rscustomers.activeconnection = nothing
    set application("rscustomers") = rscustomers
  end sub
  </script>

文件users.asp
  <%
    clone方法使得每个用户拥有自己的一个recordset集合
    set yourusers   = application("rsusers").clone
    set username    = yourusers("username")
    set password    = yourusers("password")
    do until yourusers.eof
  %>
  用户姓名:<%= username %> 用户密码:<%= password %>
  <%
      yourusers.movenext
    loop
  %>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 以前搜集的一些资料—服务端和客户端的ASP缓存技术
分享到: 更多 (0)