您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> asp编程 >> 正文

ASP通用模板类

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   ASP 通用模板类。

  适合存在较少循环的模板。未实现内部循环,需要使用正则表达式,较浪费资源和时间,如需使用可参考这篇文章.

  特性

  可设定私有缓存或公共缓存,提高效率

  可自由选择使用 Stream 组件或 FSO 组件

  支持自定义文件编码

  可保存文件

  属性

  Name

  文本,该模板名称,主要用于使用公共缓存时区分不同模板。

  Format

  文本,文件编码类型,可设置值。

  Object

  文本,使用组件,可设置值:

  Stream

  FSO

  PublicCache

  布尔值,使用公共缓存,开启时模板文件将保存到Application对象,其他引用此模板类的对象设置相同Name值并同样打开公共缓存即可从缓存读取。(Load方法)

  PrivateCache

  布尔值,使用私有缓存,开启时模板文件将保存到对象内部变量,同一引用此模板类的对象可读取。(Load方法)

  Direction

  文本,模板文件所在目录,前后无需斜杠或反斜杠,如:template/default

  File

  文本,模板文件名,前边无需斜杠或反斜杠,如:default.html

  SaveDirection

  文本,保存文件所在目录,前后无需斜杠或反斜杠,如:html/default

  SaveFile

  文本,保存文件名,前边无需斜杠或反斜杠,如:default.html

  对象

  Code

  文本,当前文本,使用SetVar方法时对此对象进行替换,使用Load方法时将模板重载到此对象

  Storage

  文本,已保存文本,使用SaveFront或SaveLast方法时将Code对象中文本保存到此对象的开头或结尾,可用于循环后得到所有代码

  方法

  ClearCache

  清除公共缓存和私有缓存(强制从文件重载模板)

  ClearPublicCache

  清除公共缓存

  ClearPrivateCache

  清除私有缓存

  ClearCode

  清除Code对象

  ClearStorage

  清除Storage对象

  SaveFront

  将当前Code对象中文本保存到Storage对象开头

  SaveLast

  将当前Code对象中文本保存到Storage对象结尾

  SaveCode

  将当前Code对象中文本保存到文件

  SaveStorage

  将当前Storage对象中文本保存到文件

  SetVar

  对当前Code对象中文本进行替换

  参数:需要被替换的文本,欲替换后的文本

  Load

  将模板文件载入Code对象,当开启并存在私有缓存时,从私有缓存载入,当开启并存在公共缓存时,从公共缓存载入,若无缓存则从文件载入

  内部变量

  ccStrPath

  默认根目录

  ccStrCookieName

  默认Application对象名前缀

  代码

  Class ccClsTemplate

  Private ccStrCode,ccStrStorage

  Private ccStrCacheCode

  Private ccBlnPublicCache,ccBlnPrivateCache

  Private ccStrName,ccStrCookieName

  Private ccStrDirection,ccStrSaveDirection,ccStrFile,ccStrSaveFile,ccStrPath

  Private ccObjStream,ccObjFSO,ccStrFormat,ccIntObject,ccObjText,ccIntFormat

  Private Sub Class_Initialize

  ccStrName = "default" '默认名称

  ccBlnPublicCache = False

  ccBlnPrivateCache = False

  ccStrFile = "cache.html"

  ccStrSaveFile = "save_cache.html"

  ccStrCookieName = "ccClass_Template" 'Application对象名前缀

  ccStrFormat = "UTF-8" 'UTF-8|ASCII|GB2312|BIG5

  ccIntFormat = -1

  ccIntObject = 1 '默认读取/保存模板组件 1:ADODB.Stream 2:FSO

  ccStrPath = Server.MapPath("./")&"" '默认根路径

  End Sub

  Public Property Let Name(ccStrName_in)

  ccStrName = LCase(Trim(ccStrName_in))

  End Property

  Public Property Let Format(ccStrFormat_in)

  ccStrFormat = ccStrFormat_in

  If InStr(LCase(Trim(ccStrFormat_in)),"utf") > 0 Then

  ccIntFormat = -1

  Else

  ccIntFormat = 0

  End If

  End Property

  Public Property Let Object(ccStrObject_in)

  ccStrObject_in = LCase(Trim(ccStrObject_in))

  If InStr(ccStrObject_in,"fso") > 0 Then

  ccIntObject = 2

  Else

  ccIntObject = 1

  End If

  End Property

  Public Property Let PublicCache(ccBlnPublicCache_in)

  If ccBlnPublicCache_in = True Then

  ccBlnPublicCache = True

  Else

  ccBlnPublicCache = False

  End If

  End Property

  Public Property Let PrivateCache(ccBlnPrivateCache_in)

  If ccBlnPrivateCache_in = True Then

  ccBlnPrivateCache = True

  Else

  ccBlnPrivateCache = False

  End If

  End Property

  Public Property Let Direction(ccStrDirection_in)

  ccStrDirection = ccStrDirection_in

  End Property

  Public Property Let File(ccStrFile_in)

  If ccStrFile_in <> "" Then

  ccStrFile = ccStrFile_in

  End If

  End Property

  Public Property Let SaveDirection(ccStrSaveDirection_in)

  ccStrSaveDirection = ccStrSaveDirection_in

  End Property

  Public Property Let SaveFile(ccStrSaveFile_in)

  If ccStrSaveFile_in <> "" Then

  ccStrSaveFile = ccStrSaveFile_in

  End If

  End Property

  Public Property Get Code

  Code = ccStrCode

  End Property

  Public Property Get Storage

  Storage = ccStrStorage

  End Property

  Public Sub ClearCache

  Call ClearPrivateCache

  Call ClearPublicCache

  End Sub

  Public Sub ClearPrivateCache

  ccStrCacheCode = ""

  End Sub

  Public Sub ClearPublicCache

  Application(ccStrCookieName&ccStrName) = ""

  End Sub

  Public Sub ClearStorage

  ccStrStorage = ""

  End Sub

  Public Sub ClearCode

  ccStrCode = ""

  End Sub

  Public Sub SaveFront

  ccStrStorage = ccStrCode & ccStrStorage

  End Sub

  Public Sub SaveLast

  ccStrStorage = ccStrStorage & ccStrCode

  End Sub

  Public Sub SaveCode

  Call SaveToFile(1)

  End Sub

  Public Sub SaveStorage

  Call SaveToFile(2)

  End Sub

  Public Sub SetVar(ccStrTag_in,ccStrValue_in)

  ccStrCode = RePlace(ccStrCode,ccStrTag_in,ccStrValue_in)

  End Sub

  Private Sub SaveToFile(ccIntCode_in)

  Dim ccStrSaveCode

  If ccIntCode_in = 1 Then

  ccStrSaveCode = ccStrCode

  Else

  ccStrSaveCode = ccStrStorage

  End If

  If ccIntObject = 1 Then

  Set ccObjStream = Server.CreateObject("ADODB.Stream")

  With ccObjStream

  .Type = 2

  .Mode = 3

  .Open

  .Charset = ccStrFormat

  .Position = ccObjStream.Size

  .WriteText ccStrSaveCode

  .SaveToFile ccStrPath & ccStrSaveDirection & "" & ccStrSaveFile,2

  .Close

  End With

  Set ccObjStream = Nothing

  Else

  Set ccObjFSO = CreateObject("Scripting.FileSystemObject")

  If ccObjFSO.FileExists(ccStrPath & ccStrSaveDirection & "" & ccStrSaveFile) = True Then

  ccObjFSO.DeleteFile(ccStrPath & ccStrSaveDirection & "" & ccStrSaveFile)

  End If

  Set ccObjText = ccObjFSO.OpenTextFile(ccStrPath & ccStrSaveDirection & "" & ccStrSaveFile,2,True,ccIntFormat)

  ccObjText.Write ccStrSaveCode

  Set ccObjText =