ASP模板类
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
为了避免asp程序和html代码混写造成维护困难的情况,本文介绍了一种方法,利用模板来分离程序和页面,使程序设计更加轻松。 这是一个表格范例。
以上共有{count}行数据。 ----------------- 从上面可以看出,象{x},{xx},{count}之类的记号是定义模板变量。它们将会在asp程序中被替代。 而...是定义一个语句块"row"。在asp程序中就可以将"row"块重复多次。 第二步:设计asp程序。 test.asp ------------------- <%@language=jscript%> <% var tpl = new template("c:\\inetpub\\wwwroot"); var str=""; var i; tpl.load("main","test.htm"); tpl.split("main"); tpl.count = 0; for(i=1;i<=tpl.maxx;i++) //tpl.maxx在模板中定义为10。 { tpl.x = i; tpl.xx = i*i; str+=tpl.parse("row"); tpl.count++; } tpl.row = str; tpl.maxx =""; //清空此模板变量,以避免被显示出来。 %> <%=tpl.parse("main")%> ------------------- 上面的程序将显示一个1到10的平方表。 通常在使用模板的情况下,都只要在最后一行加上显示页面的语句。因此整个程序显得十分清晰。此时,只要对模板文件进行编辑,就可以改变整个页面的外观。 至于模板文件,它可以是任何文件,如html文件、asp文件,甚至是程序本身!,而且在一个程序中可以装载多个模板配合使用,这样,不仅具有极大灵活性,而且模板文件与asp程序的相关性可减到最低程度。 好好利用模板,将会使你的工作更加轻松。 附:template 源程序 ------------------------------------ <% /*********************************************************/ /* template class */ /* author: 沐枫 (lin.y@263.net) */ /* date: 2000-6-09 */ /*********************************************************/ //template method define function template_parse(name) { if(this[name]==null) return ""; var reg = new regexp("{(\\w*)}","ig"); var str = new string(this[name]); var arr = str.match(reg); var i; if(arr != null) for(i=0;i key = arr.slice(1,-1); reg = new regexp(arr,"ig"); if(this[key]!=null) str = str.replace(reg,this[key]); } return str; } function template_split(name) { var len = 0; var arr; if(this[name]==null) return; var template_exp = new regexp("((.|\\n)*)","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]); } } function template_load(name,filename) { var fso = new activexobject("scripting.filesystemobject"); var file = fso.buildpath(this.tplpath, filename); if(fso.fileexists(file)) { var f = fso.opentextfile(file, 1); this[name] = f.readall(); } } //template constructor function template(path) { //property this.tplpath = path; //method this.parse = template_parse; this.split = template_split; this.load = template_load; } %> 该文章在 2010/7/22 22:06:18 编辑过 |
关键字查询
相关文章
正在查询... |