简单生活 发表于 2015-1-16 22:13:24

ASP编程:ASP 通用模板类

楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。模板  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工具名前缀
代码
ClassccClsTemplate
PrivateccStrCode,ccStrStorage
PrivateccStrCacheCode
PrivateccBlnPublicCache,ccBlnPrivateCache
PrivateccStrName,ccStrCookieName
PrivateccStrDirection,ccStrSaveDirection,ccStrFile,ccStrSaveFile,ccStrPath
PrivateccObjStream,ccObjFSO,ccStrFormat,ccIntObject,ccObjText,ccIntFormat
PrivateSubClass_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.Stream2:FSO
ccStrPath=Server.MapPath("./")&""默许根路径
EndSub
PublicPropertyLetName(ccStrName_in)
ccStrName=LCase(Trim(ccStrName_in))
EndProperty
PublicPropertyLetFormat(ccStrFormat_in)
ccStrFormat=ccStrFormat_in
IfInStr(LCase(Trim(ccStrFormat_in)),"utf")>0Then
ccIntFormat=-1
Else
ccIntFormat=0
EndIf
EndProperty
PublicPropertyLetObject(ccStrObject_in)
ccStrObject_in=LCase(Trim(ccStrObject_in))
IfInStr(ccStrObject_in,"fso")>0Then
ccIntObject=2
Else
ccIntObject=1
EndIf
EndProperty
PublicPropertyLetPublicCache(ccBlnPublicCache_in)
IfccBlnPublicCache_in=TrueThen
ccBlnPublicCache=True
Else
ccBlnPublicCache=False
EndIf
EndProperty
PublicPropertyLetPrivateCache(ccBlnPrivateCache_in)
IfccBlnPrivateCache_in=TrueThen
ccBlnPrivateCache=True
Else
ccBlnPrivateCache=False
EndIf
EndProperty
PublicPropertyLetDirection(ccStrDirection_in)
ccStrDirection=ccStrDirection_in
EndProperty
PublicPropertyLetFile(ccStrFile_in)
IfccStrFile_in""Then
ccStrFile=ccStrFile_in
EndIf
EndProperty
PublicPropertyLetSaveDirection(ccStrSaveDirection_in)
ccStrSaveDirection=ccStrSaveDirection_in
EndProperty
PublicPropertyLetSaveFile(ccStrSaveFile_in)
IfccStrSaveFile_in""Then
ccStrSaveFile=ccStrSaveFile_in
EndIf
EndProperty
PublicPropertyGetCode
Code=ccStrCode
EndProperty
PublicPropertyGetStorage
Storage=ccStrStorage
EndProperty
PublicSubClearCache
CallClearPrivateCache
CallClearPublicCache
EndSub
PublicSubClearPrivateCache
ccStrCacheCode=""
EndSub
PublicSubClearPublicCache
Application(ccStrCookieName&ccStrName)=""
EndSub
PublicSubClearStorage
ccStrStorage=""
EndSub
PublicSubClearCode
ccStrCode=""
EndSub
PublicSubSaveFront
ccStrStorage=ccStrCode&ccStrStorage
EndSub
PublicSubSaveLast
ccStrStorage=ccStrStorage&ccStrCode
EndSub
PublicSubSaveCode
CallSaveToFile(1)
EndSub
PublicSubSaveStorage
CallSaveToFile(2)
EndSub
PublicSubSetVar(ccStrTag_in,ccStrValue_in)
ccStrCode=RePlace(ccStrCode,ccStrTag_in,ccStrValue_in)
EndSub
PrivateSubSaveToFile(ccIntCode_in)
DimccStrSaveCode
IfccIntCode_in=1Then
ccStrSaveCode=ccStrCode
Else
ccStrSaveCode=ccStrStorage
EndIf
IfccIntObject=1Then
SetccObjStream=Server.CreateObject("ADODB.Stream")
WithccObjStream
.Type=2
.Mode=3
.Open
.Charset=ccStrFormat
.Position=ccObjStream.Size
.WriteTextccStrSaveCode
.SaveToFileccStrPath&ccStrSaveDirection&""&ccStrSaveFile,2
.Close
EndWith
SetccObjStream=Nothing
Else
SetccObjFSO=CreateObject("Scripting.FileSystemObject")
IfccObjFSO.FileExists(ccStrPath&ccStrSaveDirection&""&ccStrSaveFile)=TrueThen
ccObjFSO.DeleteFile(ccStrPath&ccStrSaveDirection&""&ccStrSaveFile)
EndIf
SetccObjText=ccObjFSO.OpenTextFile(ccStrPath&ccStrSaveDirection&""&ccStrSaveFile,2,True,ccIntFormat)
ccObjText.WriteccStrSaveCode
SetccObjText=Nothing
SetccObjFSO=Nothing
EndIf
ccStrSaveCode=""
EndSub
PublicSubLoad
ccStrCode=""
IfccBlnPrivateCache=TrueThen
IfccFncIsEmpty(ccStrCacheCode)=FalseThen
ccStrCode=ccStrCacheCode
ExitSub
EndIf
EndIf
IfccBlnPublicCache=TrueThen
IfccFncIsEmpty(Application(ccStrCookieName&ccStrName))=FalseThen
ccStrCode=Application(ccStrCookieName&ccStrName)
ExitSub
EndIf
EndIf
IfccIntObject=1Then
SetccObjStream=Server.CreateObject("ADODB.Stream")
WithccObjStream
.Type=2
.Mode=3
.Open
.Charset=ccStrFormat
.Position=ccObjStream.Size
.LoadFromFileccStrPath&ccStrDirection&""&ccStrFile
ccStrCode=.ReadText
.Close
EndWith
SetccObjStream=Nothing
Else
SetccObjFSO=CreateObject("Scripting.FileSystemObject")
IfccObjFSO.FileExists(ccStrPath&ccStrDirection&""&ccStrFile)=TrueThen
SetccObjText=ccObjFSO.OpenTextFile(ccStrPath&ccStrDirection&""&ccStrFile,1,False,ccIntFormat)
ccStrCode=ccObjText.ReadAll
SetccObjText=Nothing
EndIf
SetccObjFSO=Nothing
EndIf
IfccBlnPrivateCache=TrueThen
ccStrCacheCode=ccStrCode
EndIf
IfccBlnPublicCache=TrueThen
Application(ccStrCookieName&ccStrName)=ccStrCode
EndIf
EndSub
EndClass
FunctionccFncIsEmpty(ByRefccStrValue_in)
IfIsNull(ccStrValue_in)OrIsEmpty(ccStrValue_in)OrccStrValue_in=""Then
ccFncIsEmpty=True
Else
ccFncIsEmpty=False
EndIf
EndFunction
实例
模板文件内容
<#test#>
ASP程序代码
DimobjTemplate
SetobjTemplate=NewccClsTemplate
objTemplate.Name="Test"
objTemplate.Format="UTF-8"
开启缓存
objTemplate.PublicCache=True
objTemplate.PrivateCache=True
设置模板目次和文件名
objTemplate.Direction="test"
objTemplate.File="test.html"
设置保留文件目次和文件名
objTemplate.SaveDirection="test"
objTemplate.SaveFile="test3.html"
载进模板
CallobjTemplate.Load
举行文本交换
CallobjTemplate.SetVar("<#test#>","Helloworld.")
将文本保留至Storage暂存
CallobjTemplate.SaveLast
从头载进模板,此时将从公有缓存从头装载,进步效力
CallobjTemplate.Load
交换为其他值
CallobjTemplate.SetVar("<#test#>","ByCloudream.")
保留至Storage开头暂存
CallobjTemplate.SaveLast
保留Code至文件
CallobjTemplate.SaveCode
Response.WriteobjTemplate.Storage
SetobjTemplate=Nothing
显现了局
Helloworld.ByCloudream.
保留文件了局
ByCloudream.
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;

精灵巫婆 发表于 2015-1-19 05:08:36

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

冷月葬花魂 发表于 2015-1-26 21:30:43

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

小魔女 发表于 2015-2-4 21:32:14

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。

山那边是海 发表于 2015-2-10 17:20:51

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

简单生活 发表于 2015-3-1 13:48:37

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

再现理想 发表于 2015-3-17 09:54:41

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

兰色精灵 发表于 2015-3-24 06:24:39

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页: [1]
查看完整版本: ASP编程:ASP 通用模板类