网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
搜索关键字: 所有资讯 行业动态 市场趋势 政策法规 新品发布 技术资讯 价格快报 展会资讯
  • 达普IC芯片交易网 > 新闻中心 > 技术信息 > 正文
  • RSS
  • ASP缓存技术
    http://www.ic72.com 发布时间:2008/8/25 16:40:43

      使用ASP中的缓存技术可以很大程度上提高你的网站性能,其实这些实现方法是非常的简单,它将说明如何在服务器上的缓存是如何工作以及你如何使用一种被称为断开连接的ADO连接技术。

      在介绍这些技术之前先说明一下到底什么是ASP的缓存技术。
     
      所谓缓存其实就是在内存中开辟一个用来保存数据的空间,使用缓存你就不用频繁的访问你保存在硬盘上的数据了,灵活的使用缓存你就免去了心疼的看着可怜的硬盘饱受读数据时的折磨了。当你一旦执行了一个查询动作,并且将查询结果放入缓存中后,你就可以很迅速的重复访问这些数据了。而如果你不把数据放入缓存的话,当你再次执行这个查询时,服务器会将进程耗费在从数据库中获取并排序上了。

      当数据保存在缓存中时,再次查询时耗费的时间主要是在显示数据的时间上了。
    也就是说,我们不应该把经常需要改变的数据放到服务端的缓存中,我们应该把改变少,但是又需要经常访问的数据放到缓存中。

      现在我们先讨论ASP在服务端使用缓存的技术,过会再讨论ASP如何在客户端使用
    缓存的技术。

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

      DisplayBooks.ASP文件:

      < %@ LANGUAGE=JavaScript % >
      < html >
      < body >
      < form method=post >
      书籍分类; < %= getBooksListBox() % >
      < p>
      < input type=submit >

      < %
      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 + "" + crlf;
      rstBooks.MoveNext();
      }
      BooksListBox = BooksListBox + ""
      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

      文件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
      % > 


    www.ic72.com 达普IC芯片交易网
  • 行业动态
  • 市场趋势
  • 政策法规
  • 新品发布
  • Baidu

    IC快速检索:abcdefghijklmnopqrstuvwxyz0123456789
    COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
    客户服务:service@IC72.com 库存上载:IC72@IC72.com
    (北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
    京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质