ASP模板類
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
為了避免asp程序和html代碼混寫造成維護(hù)困難的情況,本文介紹了一種方法,利用模板來分離程序和頁面,使程序設(shè)計(jì)更加輕松。 這是一個(gè)表格范例。
以上共有{count}行數(shù)據(jù)。 ----------------- 從上面可以看出,象{x},{xx},{count}之類的記號(hào)是定義模板變量。它們將會(huì)在asp程序中被替代。 而...是定義一個(gè)語句塊"row"。在asp程序中就可以將"row"塊重復(fù)多次。 第二步:設(shè)計(jì)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")%> ------------------- 上面的程序?qū)@示一個(gè)1到10的平方表。 通常在使用模板的情況下,都只要在最后一行加上顯示頁面的語句。因此整個(gè)程序顯得十分清晰。此時(shí),只要對(duì)模板文件進(jìn)行編輯,就可以改變整個(gè)頁面的外觀。 至于模板文件,它可以是任何文件,如html文件、asp文件,甚至是程序本身!,而且在一個(gè)程序中可以裝載多個(gè)模板配合使用,這樣,不僅具有極大靈活性,而且模板文件與asp程序的相關(guān)性可減到最低程度。 好好利用模板,將會(huì)使你的工作更加輕松。 附: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 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |