<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • asp緩存類代碼

    時間:2024-09-28 13:13:13 ASP 我要投稿
    • 相關(guān)推薦

    asp緩存類代碼

      至于緩存的作用,我想我也不用再多說了,它的作用已經(jīng)很明顯,特別是對于信息量非常大或是全數(shù)據(jù)庫頁面的網(wǎng)站,他能很好地利用主機的內(nèi)存資源,加速ASP的執(zhí)行效率,減輕服務(wù)器的負(fù)擔(dān),而動網(wǎng)在這一方面做得是最突出的,像他現(xiàn)在的dvbbs7.1.0版,更是在緩存的利用上更上一層樓,前后臺大多的操作都和緩存有關(guān),而現(xiàn)在動網(wǎng)里用的也就是迷城浪子的緩存類,下面列出動網(wǎng)的三大高手寫的ASP緩存類

      木鳥寫的

      復(fù)制代碼 代碼如下:

      '***

      'vbsCache類

      '

      '屬性valid,是否可用,取值前判斷

      '屬性name,cache名,新建對象后賦值

      '方法add(值,到期時間),設(shè)置cache內(nèi)容

      '屬性value,返回cache內(nèi)容

      '屬性blempty,是否未設(shè)置值

      '方法makeEmpty,釋放內(nèi)存,測試用

      '方法equal(變量1),判斷cache值是否和變量1相同

      '方法expires(time),修改過期時間為time

      '木鳥2002.12.24

      'http://www.aspsky.net/

      '***

      classCache

      privateobj'cache內(nèi)容

      privateexpireTime'過期時間

      privateexpireTimeName'過期時間application名

      privatecacheName'cache內(nèi)容application名

      privatepath'uri

      privatesubclass_initialize()

      path=request.servervariables("url")

      path=left(path,instrRev(path,"/"))

      endsub

      privatesubclass_terminate()

      endsub

      publicpropertygetblEmpty

      '是否為空

      ifisempty(obj)then

      blEmpty=true

      else

      blEmpty=false

      endif

      endproperty

      publicpropertygetvalid

      '是否可用(過期)

      ifisempty(obj)ornotisDate(expireTime)then

      valid=false

      elseifCDate(expireTime)<nowthen

      valid=false

      else

      valid=true

      endif

      endproperty

      publicpropertyletname(str)

      '設(shè)置cache名

      cacheName=str&path

      obj=application(cacheName)

      expireTimeName=str&"expires"&path

      expireTime=application(expireTimeName)

      endproperty

      publicpropertyletexpires(tm)

      '重設(shè)置過期時間

      expireTime=tm

      application.lock

      application(expireTimeName)=expireTime

      application.unlock

      endproperty

      publicsubadd(var,expire)

      '賦值

      ifisempty(var)ornotisDate(expire)then

      exitsub

      endif

      obj=var

      expireTime=expire

      application.lock

      application(cacheName)=obj

      application(expireTimeName)=expireTime

      application.unlock

      endsub

      publicpropertygetvalue

      '取值

      ifisempty(obj)ornotisDate(expireTime)then

      value=null

      elseifCDate(expireTime)<nowthen

      value=null

      else

      value=obj

      endif

      endproperty

      publicsubmakeEmpty()

      '釋放application

      application.lock

      application(cacheName)=empty

      application(expireTimeName)=empty

      application.unlock

      obj=empty

      expireTime=empty

      endsub

      publicfunctionequal(var2)

      '比較

      iftypename(obj)<>typename(var2)then

      equal=false

      elseiftypename(obj)="Object"then

      ifobjisvar2then

      equal=true

      else

      equal=false

      endif

      elseiftypename(obj)="Variant()"then

      ifjoin(obj,"^")=join(var2,"^")then

      equal=true

      else

      equal=false

      endif

      else

      ifobj=var2then

      equal=true

      else

      equal=false

      endif

      endif

      endfunction

      endclass

      木鳥類例子vbsCache類

      '

      '屬性valid,是否可用,取值前判斷

      '屬性name,cache名,新建對象后賦值

      '方法add(值,到期時間),設(shè)置cache內(nèi)容

      '屬性value,返回cache內(nèi)容

      '屬性blempty,是否未設(shè)置值

      '方法makeEmpty,釋放內(nèi)存,

      '方法DelCahe,刪除內(nèi)存

      '方法equal(變量1),判斷cache值是否和變量1相同

      '方法expires(time),修改過期時間為time

      '用法

      setmyCache=NewCache

      myCache.name="BoardJumpList"'定義緩存名

      ifmyCache.validthen'判斷是否可用(包括過期,與是否為空值)

      response.writemyCache.value'輸出

      else

      ................

      BoardJumpList=xxx

      myCache.addBoardJumpList,dateadd("n",60,now)'寫入緩存xxx.add內(nèi)容,過期時間

      response.writeBoardJumpList'輸出

      endif

      myCache.makeEmpty()釋放內(nèi)存

      mycache.DelCahe()刪除緩存

      迷城浪子寫的

      復(fù)制代碼 代碼如下:

      ClassCls_Cache

      Rem==================使用說明====================

      Rem=本類模塊是動網(wǎng)先鋒原創(chuàng),作者:迷城浪子。如采用本類模塊,請不要去掉這個說明。這段注釋不會影響執(zhí)行的速度。

      Rem=作用:緩存和緩存管理類

      Rem=公有變量:Reloadtime過期時間(單位為分鐘)缺省值為14400

      Rem=MaxCount緩存對象的最大值,超過則自動刪除使用次數(shù)少的對象。缺省值為300

      Rem=CacheName緩存組的總名稱,缺省值為"Dvbbs",如果一個站點中有超過一個緩存組,則需要外部改變這個值。

      Rem=屬性:Name定義緩存對象名稱,只寫屬性。

      Rem=屬性:value讀取和寫入緩存數(shù)據(jù)。

      Rem=函數(shù):ObjIsEmpty()判斷當(dāng)前緩存是否過期。

      Rem=方法:DelCahe(MyCaheName)手工刪除一個緩存對象,參數(shù)是緩存對象的名稱。

      Rem========================

      PublicReloadtime,MaxCount,CacheName

      PrivateLocalCacheName,CacheData,DelCount

      PrivateSubClass_Initialize()

      Reloadtime=14400

      CacheName="Dvbbs"

      EndSub

      PrivateSubSetCache(SetName,NewValue)

      Application.Lock

      Application(SetName)=NewValue

      Application.unLock

      EndSub

      PrivateSubmakeEmpty(SetName)

      Application.Lock

      Application(SetName)=Empty

      Application.unLock

      EndSub

      PublicPropertyLetName(ByValvNewValue)

      LocalCacheName=LCase(vNewValue)

      EndProperty

      PublicPropertyLetValue(ByValvNewValue)

      IfLocalCacheName<>""Then

      CacheData=Application(CacheName&"_"&LocalCacheName)

      IfIsArray(CacheData)Then

      CacheData(0)=vNewValue

      CacheData(1)=Now()

      Else

      ReDimCacheData(2)

      CacheData(0)=vNewValue

      CacheData(1)=Now()

      EndIf

      SetCacheCacheName&"_"&LocalCacheName,CacheData

      Else

      Err.RaisevbObjectError+1,"DvbbsCacheServer","pleasechangetheCacheName."

      EndIf

      EndProperty

      PublicPropertyGetValue()

      IfLocalCacheName<>""Then

      CacheData=Application(CacheName&"_"&LocalCacheName)

      IfIsArray(CacheData)Then

      Value=CacheData(0)

      Else

      Err.RaisevbObjectError+1,"DvbbsCacheServer","TheCacheDataIsEmpty."

      EndIf

      Else

      Err.RaisevbObjectError+1,"DvbbsCacheServer","pleasechangetheCacheName."

      EndIf

      EndProperty

      PublicFunctionObjIsEmpty()

      ObjIsEmpty=True

      CacheData=Application(CacheName&"_"&LocalCacheName)

      IfNotIsArray(CacheData)ThenExitFunction

      IfNotIsDate(CacheData(1))ThenExitFunction

      IfDateDiff("s",CDate(CacheData(1)),Now())<60*ReloadtimeThen

      ObjIsEmpty=False

      EndIf

      EndFunction

      PublicSubDelCahe(MyCaheName)

      makeEmpty(CacheName&"_"&MyCaheName)

      EndSub

      EndClass

      迷城浪子類例子

      SetWydCache=NewCls_Cache

      WydCache.Reloadtime=0.5'定義過期時間(以分鐘為單會)

      WydCache.CacheName="pages"'定義緩存名

      IFWydCache.ObjIsEmpty()Then''判斷是否可用(包括過期,與是否為空值)

      Response.writeWydCache.Value

      Else

      ..................

      BoardJumpList=xxx

      WydCache.Value=BoardJumpList'寫入內(nèi)容

      Response.writeBoardJumpList

      Endif

      mycache.DelCahe("緩存名")刪除緩存

      slightboy寫的'========================

      復(fù)制代碼 代碼如下:

      'clsCache.asp

      '========================

      '==begin:2004-6-2621:51:47

      '==copyright:slightboy(C)1998-2004

      '==email:slightboy@msn.com

      '========================

      '========================

      'DimApplication(2)

      'Application(0)Counter計數(shù)器

      'Application(1)dateTime放置時間

      'Application(2)Content緩存內(nèi)容

      PublicPREFIX

      PublicPREFIX_LENGTH

      PrivateSubClass_Initialize()

      PREFIX="Cached:"

      PREFIX_LENGTH=7

      EndSub

      PrivateSubClass_Terminate

      EndSub

      '設(shè)置變量

      PublicPropertyLetCache(ByRefKey,ByRefContent)

      DimItem(2)

      Item(0)=0

      Item(1)=Now()

      IF(IsObject(Content))Then

      SetItem(2)=Content

      Else

      Item(2)=Content

      EndIF

      Application.Unlock

      Application(PREFIX&Key)=Item

      Application.Lock

      EndProperty

      '取出變量計數(shù)器++

      PublicPropertyGetCache(ByRefKey)

      DimItem

      Item=Application(PREFIX&Key)

      IF(IsArray(Item))Then

      IF(IsObject(Item))Then

      SetCache=Item(2)

      Else

      Cache=Item(2)

      EndIF

      Application(PREFIX&Key)(0)=Application(PREFIX&Key)(0)+1

      Else

      Cache=Empty

      EndIF

      EndProperty

      '檢查緩存對象是否存在

      PublicPropertyGetExists(ByRefKey)

      DimItem

      Item=Application(PREFIX&Key)

      IF(IsArray(Item))Then

      Exists=True

      Else

      Exists=False

      EndIF

      EndProperty

      '得到計數(shù)器數(shù)值

      PublicPropertyGetCounter(ByRefKey)

      DimItem

      Item=Application(PREFIX&Key)

      IF(IsArray(Item))Then

      Counter=Item(0)

      EndIF

      EndProperty

      '設(shè)置計數(shù)器時間

      PublicPropertyLetdateTime(ByRefKey,ByRefSetdateTime)

      DimItem

      Item=Application(PREFIX&Key)

      IF(IsArray(Item))Then

      Item(1)=SetdateTime

      EndIF

      EndProperty

      '得到計數(shù)器時間

      PublicPropertyGetdateTime(ByRefKey)

      DimItem

      Item=Application(PREFIX&Key)

      IF(IsArray(Item))Then

      dateTime=Item(1)

      EndIF

      EndProperty

      '重置計數(shù)器

      PublicSubResetCounter()

      DimKey

      DimItem

      Application.Unlock

      ForEachKeyinApplication.Contents

      IF(Left(Key,PREFIX_LENGTH)=PREFIX)Then

      Item=Application(Key)

      Item(0)=0

      Application(Key)=Item

      EndIF

      Next

      Application.Lock

      EndSub

      '刪除某以緩存

      PublicSubClear(ByRefKey)

      Application.Contents.Remove(PREFIX&Key)

      EndSub

      '清空沒有使用的緩存

      PublicSubClearUnused()

      DimKey,Keys,KeyLength,KeyIndex

      ForEachKeyinApplication.Contents

      IF(Left(Key,PREFIX_LENGTH)=PREFIX)Then

      IF(Application(Key)(0)=0)Then

      Keys=Keys&VBNewLine&Key

      EndIF

      EndIF

      Next

      Keys=Split(Keys,VBNewLine)

      KeyLength=UBound(Keys)

      Application.Unlock

      ForKeyIndex=1ToKeyLength

      Application.Contents.Remove(Keys(KeyIndex))

      Next

      Application.Lock

      EndSub

      '清空所有緩存

      PublicSubClearAll()

      DimKey,Keys,KeyLength,KeyIndex

      ForEachKeyinApplication.Contents

      IF(Left(Key,PREFIX_LENGTH)=PREFIX)Then

      Keys=Keys&VBNewLine&Key

      EndIF

      Next

      Keys=Split(Keys,VBNewLine)

      KeyLength=UBound(Keys)

      Application.Unlock

      ForKeyIndex=1ToKeyLength

      Application.Contents.Remove(Keys(KeyIndex))

      Next

      Application.Lock

      EndSub

      EndClass

      slightboyn類例子SetWyd=NewJayCache

      Wyd.dateTime("Page")=時間

      IfWyd.Exists("Page")Then

      Response.writeWyd.Cache("Page")'輸出

      Else

      Wyd.Cache("Page")=xxx寫入

      Responxe.writexxx

      EndIF

      Wyd.Clear("page")'刪除緩存

    【asp緩存類代碼】相關(guān)文章:

    防盜鏈接ASP函數(shù)實現(xiàn)代碼01-23

    ASP.NET連SQL7接口的源代碼06-06

    ASP網(wǎng)頁程序設(shè)計中10個非常有用的實例代碼08-12

    關(guān)于ASP.NET使用JavaScript顯示信息提示窗口實現(xiàn)原理及代碼05-09

    2016職稱英語綜合類A代碼12考試答案09-14

    硬盤的緩存容量是什么08-02

    過濾HTML代碼08-29

    網(wǎng)頁編程語言禁止IE緩存08-10

    主板中緩存常見問題09-29

    ASP提速技巧08-05

    主站蜘蛛池模板: 国产精品 91 第一页| 亚洲AV无码成人精品区在线观看| 久久无码人妻精品一区二区三区| 91麻豆精品国产| 亚洲精品网站在线观看不卡无广告| 色综合久久综精品| 国产成人精品无码一区二区| 亚洲精品无码不卡在线播HE| 久久精品国产亚洲av瑜伽| 99R在线精品视频在线播放| 国产精品无圣光一区二区| 亚洲精品无码久久久久sm| 欧美亚洲综合免费精品高清在线观看 | 精品视频一区二区三区| 久久777国产线看观看精品| 精品无码久久久久久尤物| 亚洲精品无码MV在线观看| 亚洲国产精品日韩专区AV| 久久人人爽人人精品视频| 国产精品日韩深夜福利久久| 99久久精品这里只有精品 | 免费人妻精品一区二区三区| 国产精品视频全国免费观看| 99国产精品私拍pans大尺度| 99久久国产综合精品成人影院| 国产精品1区2区| 国产亚洲福利精品一区| 久久99热国产这有精品| 国产一区二区精品| 日本精品中文字幕| 日韩精品在线看| 中文字幕亚洲综合精品一区 | 97久人人做人人妻人人玩精品 | 国产高清在线精品一本大道国产| 亚洲午夜久久久精品影院| 最新亚洲精品国自产在线观看| 四虎国产精品免费久久久| 国产精品久久久久乳精品爆| 国产在线精品一区二区不卡麻豆 | 综合国产精品第一页| 日韩精品乱码AV一区二区|