文件名: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。