浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

对于通过vbs类处理模板完成代码与界面分离的程序,建议入精华备查。有演示

文章标题:vbs类处理模板实现代码与界面分离
'作者:yanek
'email:aspboy@263.net

本程序通过vbs类处理模板实现代码与界面分离的程序,主要有下面文件组成
index.asp,parse_cls.asp,template.html
下面是代码

1。index.asp 调用vbs类处理模板

<%
'作者:yanek
'email:aspboy@263.net

'------
' index.asp
'----------
' (c)2000 James Q. Stansfield (james.stansfield@iridani.com)
' This code is free for use by anyone. It is meant as a learning tool and can be passed along in any format.
option explicit
%>
<!--#INCLUDE FILE="parse_cls.asp"-->
<%
'Declare our variables
dim g_oPageGen
'Cerate the class object
set g_oPageGen = New parseTMPL
'Set the template file
g_oPageGen.TemplateFile = "template.html"
'Add some custom tags to the dictionary
g_oPageGen.AddToken "title", "Template Example"
g_oPageGen.AddToken "copyright", "This is mine! All mine!"
g_oPageGen.AddToken "quote", """Tell Jabba I've got his money!""<br>--Han Solo, Star Wars 1977"
g_oPageGen.AddToken "menu", "Home Page<br>News Page<br>Link Page"
g_oPageGen.AddToken "content", "Welcome To My Home Page... Yadda Yadda Yadda!"
'Generate the page
g_oPageGen.GenerateHTML
'Destroy our objects
set g_oPageGen = nothing
%>



2。parse_cls.asp处理模板类文件

<%
'作者:yanek
'email:aspboy@263.net

'------
' parse_cls.asp
' This code is free for use by anyone. It is meant as a learning tool and can be passed along in any format.
class parseTMPL
'Dimension variables
private g_sTMPLFILE
private g_oDict
private g_bFILE

private sub class_Initialize
'Create the Scripting.Dictionary Object,
'Set the compare mode to 1 so that it is case insensitive.
'Also flag a boolean file so we know whether our file is there or not.
set g_oDict = createobject("Scripting.Dictionary")
g_oDict.CompareMode = 1
g_bFILE = FALSE
end sub

private sub class_Terminate
'Destroy our object.
set g_oDict = nothing
end sub

public property let TemplateFile(inFile)
'A file & path must be specified for the routine to work.
g_sTMPLFILE = server.mappath(inFile)
end property

private property get TemplateFile()
TemplateFile = g_sTMPLFILE
end property

public sub AddToken(inToken, inValue)
'This property allows us to set our tokens.
g_oDict.Add inToken, inValue
end sub

public sub GenerateHTML
'This is the main, and only public method of the class.
'This method will check whether we've specified a file or not.
'Check for the files existance if we have specified it.
'If the file exists we will open it and dumps it's contents into an array.
'The array is split on VbCrLf to make it more manageable.
if len(g_sTMPLFILE) > 0 then
dim l_oFSO, l_oFile, l_arrFile
set l_oFSO = createobject("Scripting.FileSystemObject")
if l_oFSO.FileExists(TemplateFile) then
g_bFILE = TRUE
set l_oFile = l_oFSO.OpenTextFile(g_sTMPLFILE)
l_arrFile = split(l_oFile.ReadAll, VbCrLf)
l_oFile.Close
set l_oFile = Nothing
end if
set l_oFSO = nothing
else
'Filename was never passed!
end if
'If we have a file, we will prase it line by line
'by sending each line to ParseTMPL()
if g_bFILE then
Dim l_sLine
for each l_sLine in l_arrFile
ParseTMPL(l_sLine)
next
else
'Error File Not Found!
end if
end sub

private sub ParseTMPL(inLine)
'This is a reasonably complex piece of code that looks for any text that is bounded by '[%' and '%]'...
'If it finds one it takes the first part of the line up to the '[%' and displays it to the user.
'It then passes the bounded text to getToken.
'The it send the text that resides past the '%]' to itself(ParseTMPL), that way it can check for another
'token on the same line.
'If the routine doesn't find a '[%' in the line it simply displays it for the user.
dim l_ia, l_ib, l_sLine, l_sLine2, l_sToken
l_ia = instr(inLine, "][%")
if l_ia > 0 then
l_sLine = left(inLine, l_ia - 1)
l_ib = instr(inLine, "%]")
l_sLine2 = mid(inLine, l_ib + 2)
l_sToken = trim(mid(inLine, l_ia + 2, (l_ib - l_ia - 2)))
Response.Write(l_sLine & VbCrLf)
getToken(l_sToken)
ParseTMPL(l_sLine2)
else
Response.Write(inLine & VbCrLf)
end if
end sub

private sub getToken(inToken)
'This routine checks the Dictionary for the text passed to it.
'If it finds a key in the Dictionary it Display the value to the user.
'If not, by default it will display the full Token in the HTML source so that you can debug your templates.
if g_oDict.Exists(inToken) then
Response.Write(g_oDict.Item(inToken) & VbCrLf)
else
Response.Write("<!--[%" & inToken & "%]-->" & VbCrLf)
end if
end sub
end class
%>

3.template.html 模板文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>[%TITLE%]</title>
</head>

<body>
<table border="0" width="785" align="center" cellspacing="0" cellpadding="0" class="largetable">
<tr>
<td rowspan="2" height="100%" width="150" valign="top" align="right">[%MENU%]</td>
<td valign="top" width="635" class="caption" align="center">[%QUOTE%]</td>
</tr>
<tr>
<td valign="top" bgcolor="#b0c4de" width="635" class="layout">[%CONTENT%]</td>
</tr>
<tr>
<td colspan="2" width="785" align="center" class="caption">[%COPYRIGHT%]</td>
</tr>

</body>
</html>

演示地址:http://www.cnaspol.com/tmpcode/index.asp






相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...