欢迎来到天天文库
浏览记录
ID:20509400
大小:86.00 KB
页数:9页
时间:2018-10-13
《使用模板实现asp代码与页面分离--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、使用模板实现ASP代码与页面分离>>每个进行过较大型的ASP-L混淆难分,业务逻辑与显示方式绞合,使得代码难以理解、难以修改;程序编写必须在美工之后,成为项目瓶颈;整合的程序代码和HTML静态页面时,花费大量的时间才能得到理想的效果,兼作了美工。的确,用脚本语言开发L代码,将这些显示代码中需要动态数据的地方替换为ASP程序运算所得出的数据,然后按照一定的顺序输出。其中,替换的部分可以自由的设定。因此它必须完成如下任务:·从模板文件中读取显示用的HTML代码。·将模板文件和实际生成的数据结合,生成输出的结果。·允许同时处理多个模板。·
2、允许模板的嵌套。·允许对模板中的某个单独的部分进行处理。实现方法:采用FSO读取模板文件采用正则替换实现模板文件和数据的结合处理多个模板用数组存储来实现。模板的嵌套的实现主要的想法是:将模板和输出(任何中间的分析结果)一视同仁,都可拿来做替换,即可实现。单独部分的处理的通过在模板文件中设定标注,然后在正则替换中结合标注来控制,实现部分替换。2、模板类的实现 给出具体代码之前,先把主要函数列出,用过PHPLIB的朋友应该对此很熟悉了: 1)PublicSubset_root(ByValValue) 设定模板默认目录 2)Publ
3、icSubset_file(ByValhandle,ByValfilename) 读取文件 3)PublicSubset_var(ByValName,ByValValue,ByValAppend) 设置映射数据-替换变量 4)PublicSubunset_var(ByValName) 取消数据映射 5)PublicSubset_block(ByValParent,ByValBlockTag,ByValName) 设置数据块 6)PublicSubset_unknoe,ByValBlockTag,ByValAppend) 执行
4、模板文件与数据的结合 8)PublicSubp(ByValName) 输出处理结果实现代码:<%’=======================================================================’CLASSNAME:kktTemplateASP页面模板对象’DESIGNBY:彭国辉’DATE:2004-07-05’AIL:kacartonsohu.’’本对象中使用了set_var、set_block等命名方法是为了兼容phplib’========================
5、===============================================ClasskktTemplatePrivatem_FileName,m_Root,m_Unkno_LastError,m_HaltOnErrPrivatem_ValueList,m_BlockListPrivatem_RegExp’构造函数PrivateSubClass_InitializeSetm_ValueList=CreateObject("Scripting.Dict123456下一页>>>>这篇文章来自..,。ionary")Se
6、tm_BlockList=CreateObject("Scripting.Dictionary")setm_RegExp=Ne_RegExp.IgnoreCase=Truem_RegExp.Global=Truem_FileName=""m_Root=""m_Unknoove"m_LastError=""m_HaltOnErr=trueEndSub’析构函数PrivateSubClass_TerminateSetm_RegExp=NothingSetm_BlockMatches=NothingSetm_ValueMatches=no
7、thingEndSubPublicPropertyGetClassName()ClassName="kktTemplate"EndPropertyPublicPropertyGetVersion()Version="1.0"EndPropertyPublicSubAbout()Response.apPath(path))Setfso=NothingEndFunction’读取文件内容PrivateFunctionLoadFile()DimFilename,fso,hndFileFilename=m_RootIfRight(Filen
8、ame,1)<>"/"AndRight(Filename,1)<>""ThenFilename=Filename"/"Filename=Server.MapPath(Filenamem_FileName)Se
此文档下载收益归作者所有