建立数据库db.mdb【使用Access】, 创建标签表Tag,字段如下: 自动编号 标签名称(文本型) 标签说明(文本型) 标签内容(备注型) ID tagName tagDesc tagCon 1 $Top_Nav$ 顶部导航 具体内容 创建模版表Template,字段如下: ID(自动编号) tName(文本,模版名称) tPath(文本,模版文件路径) Path(文本,保存路径) 1 公司介绍 /Template/Company.html /Company.html 【本例只介绍简单的文件模版使用,而非多个样式的模版】
后台标签、模版的添加修改删除就不在这里说明了,注意:本例中标签使用$符号开头和结尾。 Company.html部分代码:……$Top_Nav$……$Sys_Top_News$……先使用Fso或者其他方式以文本方式读取这个文件的内容,然后使用正则表达式,找到标签,并替换相应的标签内容。
FSO读取详见“FSO文件、文件夹操作类”。 程序代码 '使用正则的处理标签的函数chxwei.com
Function ReplaceTags(ByVal sCon)
Dim objRegEx,Match,Matches
'建立正则表达式
Set objRegEx=New RegExp'查找内容objRegEx.Pattern="\$.*\$"
'忽略大小写
objRegEx.IgnoreCase=True'全局查找objRegEx.Global=True
Set Matches=objRegEx.Execute(sCon)
'循环替换已发现的匹配
For Each Match in Matches
sCon=Replace(sCon,Match.Value,ParseTag(Match.Value))NextSet Matches=Nothing
Set objRegEx=Nothing
ReplaceTags=sCon
End Function
'替换相应的标签内容chxwei.com
Function ParseTag(ByVal StrTag)
If Len(StrTag) = 0 Then Exit Function
ClsName=StrTagtmpTag=""If InStr(ClsName,"$Sys_")>0 Then '系统标签
Select Case ClsName
Case "$Sys_Top_News$" '最新文章信息
'中间读取数据库省略,循环读取数据赋值给tmpTagCase ElsetmpTag=""End SelectElse '自定义标签tmpTag=""Set RsT=Conn.Execute("Select tCon From TagList Where tName='"&className&"'")
If RsT.Eof Then
tmpTag=classNameElsetmpTag=RsT(0)End IfRsT.CloseSet RsT=NothingEnd IfParseTag=tmpTag
最后使用Fso把得到的内容按照模版保存的路径生成静态页面。
顾名思义,这是一个模板。比如需要ajax刷新一个列表,以前的做法是后端生成html返回,或者前端用DOM构建后加入,但现在有了template标签,html的架构就不需要程序管了,只需要在特定的位置加入ajax请求到的数据即可,比如img的src或者其他text之类的,然后clone这个DOM,加入列表。其实许多人以前也应该做过类似的事情,把一段html隐藏起来,然后clone它并修改里面的属性或者内容,得到一个DOM,加入列表并显示,用来刷新ajax列表。