程序员人生 网站导航

一个基于Javascript和fso的asp模板机制

栏目:综合技术时间:2014-06-18 04:35:17

文件名:Template.JScript.INC

以下为引用的内容:
<%
/*********************************************************/
/*TemplateClass*/
/*Author:www.aspxuexi.com*/
/*Date:6-09*/
/*********************************************************/
//TemplateMethodDefine
functionTemplate_Parse(name)
{
if(this[name]==null)
return;
varreg=newRegExp({(w*)},ig);
varstr=newString(this[name]);
vararr=str.match(reg);
vari;
if(arr!=null)
for(i=0;iarr.length;i++)
{
key=arr.slice(1,-1);
reg=newRegExp(arr,ig);
if(this[key]!=null)
str=str.replace(reg,this[key]);
}
returnstr;
}
functionTemplate_Split(name)
{
varlen=0;
vararr;
if(this[name]==null)
return;
varTemplate_Exp=newRegExp(!#TPLDEF+(w*)*((.|)*)!#TPLEND+1*,i);
while(this[name].search(Template_Exp)!=-1)
{
arr=this[name].match(Template_Exp);
this[arr[1}=arr[2];
this[name]=this[name].replace(Template_Exp,{+arr[1]+});
this.Split(arr[1]);
}
}
functionTemplate_Load(name,filename)
{
varfso=newActiveXObject(Scripting.FileSystemObject);
varfile=fso.BuildPath(this.TplPath,filename);
if(fso.FileExists(file))
{
varf=fso.OpenTextFile(file,1);
this[name]=f.ReadAll();
}
}
//TemplateConstructor
functionTemplate(path)
{
//Property
this.TplPath=path;
//Method
this.Parse=Template_Parse;
this.Split=Template_Split;
this.Load=Template_Load;
}
%>

在使用ASP制作一个站点的时候,常常会出现一个ASP文件中,程序代码和HTML代码混合的情况。这样子做有许多缺点:

  1.编程时就要对页面布局进行设计和编排,造成代码混乱难懂,不规范;

  2.当需要改变页面外观时,你不仅要改变HTML部份,也需要改变ASP代码,不易维护。

  那么,要如何才能避免这些麻烦呢?

  答案就是使用模板文件,将ASP代码和HTML页面分开,一切问题就都解决了。使用模板有以下好处:

  1.在很短的时间内可以替换整个站点的外观;

  2.使程序员可以抽象编程,而无须接触HTML代码;

  3.可以重复利用以前的模板。

  使用过PHP的程序就会知道,PHP有个模板程序(FastTemplate),现在的问题是如何在ASP中实现类似的功能。

  Microsoft的ASP带有两种脚本:VBScript和JScript。它们都带有一个正则表达式对象(RegExp),利用字符串对象和RegExp对象,就可以轻松的实现模板功能。沐枫以此编写了一个Template.JScript.INC文件,此文件的内容附在文章后面。有能力的读者可以根据自己的需要进行改进。

  下面介绍一下使用方法。由于此文件是使用JScript编写的(当然要转成VBScript也很容易),因此,缺省脚本语言要设为JScript,即ASP程序第一行应为:%@Language=JScript%,然后再包含模板程序文件:!#includefile=Template.JScript.INC。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐