- <%
- '**********************************************
- 'vbs Cache類
- ' 屬性valid,是否可用,取值前判斷
- ' 屬性name,cache名,新建對象后賦值
- ' 方法add(值,到期時間),設置cache內容
- ' 屬性value,返回cache內容
- ' 屬性blempty,是否未設置值
- ' 方法makeEmpty,釋放內存,測試用
- ' 方法equal(變量1),判斷cache值是否和變量1相同
- ' 方法expires(time),修改過期時間為time
- ' 木鳥寫的緩存類
- '**********************************************
- class Cache
- private obj 'cache內容
- private expireTime '過期時間
- private expireTimeName '過期時間application名
- private cacheName 'cache內容application名
- private path 'uri
- private sub class_initialize()
- path=request.servervariables("url")
- path=left(path,instrRev(path,"/"))
- end sub
- private sub class_terminate()
- end sub
- public property get blEmpty
- '是否為空
- if isempty(obj) then
- blEmpty=true
- else
- blEmpty=false
- end if
- end property
- public property get valid
- '是否可用(過期)
- if isempty(obj) or not isDate(expireTime) then
- valid=false
- elseif CDate(expireTime)<now then
- valid=false
- else
- valid=true
- end if
- end property
- public property let name(str)
- '設置cache名
- cacheName=str & path
- obj=application(cacheName)
- expireTimeName=str & "expires" & path
- expireTime=application(expireTimeName)
- end property
- public property let expires(tm)
- '重設置過期時間
- expireTime=tm
- application.lock
- application(expireTimeName)=expireTime
- application.unlock
- end property
- public sub add(var,expire)
- '賦值
- if isempty(var) or not isDate(expire) then
- exit sub
- end if
- obj=var
- expireTime=expire
- application.lock
- application(cacheName)=obj
- application(expireTimeName)=expireTime
- application.unlock
- end sub
- public property get value
- '取值
- if isempty(obj) or not isDate(expireTime) then
- value=null
- elseif CDate(expireTime)<now then
- value=null
- else
- value=obj
- end if
- end property
- public sub makeEmpty()
- '釋放application
- application.lock
- application(cacheName)=empty
- application(expireTimeName)=empty
- application.unlock
- obj=empty
- expireTime=empty
- end sub
- public function equal(var2)
- '比較
- if typename(obj)<>typename(var2) then
- equal=false
- elseif typename(obj)="Object" then
- if obj is var2 then
- equal=true
- else
- equal=false
- end if
- elseif typename(obj)="Variant()" then
- if join(obj,"^")=join(var2,"^") then
- equal=true
- else
- equal=false
- end if
- else
- if obj=var2 then
- equal=true
- else
- equal=false
- end if
- end if
- end function
- end class
- dim content,myCache
- Set myCache = new Cache
- myCache.name="sofoisndoffo" '定義緩存名稱
- if myCache.valid then '如果緩存有效
- content=myCache.value '讀取緩存內容
- else
- content="sosuo8.com測試" '大量內容,可以是非常耗時大量數據庫查詢記錄集
- myCache.add content,dateadd("n",1000,now) '將內容賦值給緩存,并設置緩存有效期是當前時間+1000分鐘
- end if
- Response.Write(content)
- 'myCache.makeEmpty()
- set clsCache=nothing '釋放對象
- %>
ASP實現緩存類無錯版
2019-10-10 10:42asp代碼網 ASP教程
ASP實現緩存類無錯版
延伸 · 閱讀
- 2021-10-20關于ASP網頁無法打開的解決方案
- 2021-10-14讓apache也支持asp環境的方法
- 2021-08-15asp取整數mod 有小數的就自動加1
- 2021-08-15asp與php中定時生成頁面的思路與代碼
- 2021-06-15php實現的redis緩存類定義與使用方法示例
- 2021-06-09Android圖片加載的緩存類
精彩推薦
- ASP教程
asp 采集實戰代碼
最近實在是太流行采集了,本人是不喜歡采集的,但對采集的原理我卻很有興趣進行研究,拿到了網上采集常用函數,對其進行了一番研究,并實戰,結果...
- ASP教程
asp之基于adodb.stream的文件操作類
asp之基于adodb.stream的文件操作類...
- ASP教程
asp 標記字符串中指定字符變色不區分大小寫
今天遇到這種問題,單純的使用replace函數不行,他會改變原有的字符串的大小寫,在網上找到相關的代碼,自己備份下...
- ASP教程
JScript中遍歷Request表單參數集合的方法
這篇文章主要介紹了JScript中遍歷Request表單參數集合的方法,本文以遍歷Request.QueryString集合為例給出了實現代碼,需要的朋友可以參考下...
- ASP教程
asp Access數據備份,還原,壓縮類代碼
asp Access數據備份,還原,壓縮類實現代碼,大家可以參考下。...
- ASP教程
asp+javascript實現404頁的處理轉換
asp+javascript實現404頁的處理轉換...
- ASP教程
ASP.NET 數據源
數據源 一個 data sourse 控件與數據綁定的控件相互作用,并隱藏了復雜的數據的聯編過程。這些是提供數據給 data bound 控件的工具,并且支持如插入,刪除...
- ASP教程
ASP常用函數:getpy()
ASP常用函數:getpy()...