asp模板引擎终结者(WEB开发之ASP模式)

作者: 孙立 Email: 17bizAT126.com
写于:2006/3/5
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://sunli.cnblogs.com/archive/2006/03/05/343095.html
关键词:ASP 模板
摘要: 阐述一种全新的ASP模板引擎,实现代码(逻辑)层与HTML(表现)层的分离.这种模板实现方法避免了一 般ASP模板加载模板文件(加载组件)和替换所浪费的资源,实现编译型的模板引擎,提高程序的执行速度和稳定性。

内容:
        当前,WEB开发已经变得非常火爆,因为各种应用,已经约来越要求表现层和逻辑层的分离.ASP和HTML夹在一起程序将变得难于维护,可读性也差。在PHP领域,模板引擎已经非常普遍,如phplib,SMARTY,等等.有使用替换方式的,也有编译方式的(SMARTY),它们都较好的实现了逻辑层和表现层的分离.由于PHP的影响,在ASP界有人借鉴phplib等使用替换的方法开发出asp的模板类,由于ASP在字符处理上性能并不是很强大,所以在速度上受到影响,这样的模板在目前的应用也不是很广泛。如:

1 <!-- template.html -->
2 < html >
3 < head >
4 < title > {$title} </ title >
5 </ head >
6 < body >
7 {$body}
8 </ body >
9 </ html >

1 < ! -- Template.asp -->
2 < %
3 TemplateCode = Load( " template.html " ) ' 自定义函数,装载模板文件到TemplateCode
4 TemplateCode = Replace (TemplateCode, " {$title} " , " asp模板引擎终结者 " ) ' 替换模板
5 TemplateCode = Replace (TemplateCode, " {$body} " , " asp模板引擎终结者内容 " ) ' 替换模板
6 Response.Write TemplateCode
7 % >
       上面的例子只是初步展示了当前ASP模板的思想,有ASP版的CMS系统已经嵌入了对模板的逻辑控制,虽然能够实现逻辑和界面的分离,但是这种模板存在的问题就是模板需要每次都用ASP解析一次,程序相当于解析两次,而且当要替换的内容很多的时候,将会降低性能.而且装载模板需要服务器支持一种组件(FSO,ADODB,XMLHTTP均可实现).
  借鉴于编译型的模板,我在ASP中引进这种思路.提出一种应用在ASP中的功能和性能都很优良的模板体系.下面用代码表示:
 1  <!-- template.html -->
 2  < html >
 3  < head >
 4  < title > <% = title %> </ title >
 5  </ head >
 6  < body >
 7  <!-- <%
 8  'If逻辑控制,当然这里对于FOR,While 循环也一样处理,是不是觉得很简单呢,
 9  '对逻辑进行html注释,在DW(Dreamweaver)下就不会应为逻辑控制的asp占位符产生变形,对于其他的变量将显示一个asp标记,便于修改
10  IF Catalog="music" Then
11  %> -->
12  <% = music %>
13  <!-- <%Else%> -->
14  <% = book %>
15  <!-- <%End If%> -->
16  </ body >
17  </ html >

1  < ! -- Template.asp -->
2  < %
3  title = " asp模板引擎终结者 "
4  Catalog = " music "
5  music = " 音乐 "
6  book = " "
7  % >
8  < ! -- #include file = " template.html " -->
思路:asp文件进行常规的逻辑处理,运算,不用管显示层,当然需要显示的变量需要和显示层结合(PHP也一样),在模板文件中用<%%>直接控制变量的显示和逻辑的控制,不显示的逻辑控制符用html注释符<!---->注释掉,当然,不注释也是可以的.这样在ASP文件的最后"<!--#include file="template.html"-->"就实现了模板和ASP文件的结合,实现了代码和表现层的分离,这里并没有用ASP去Load模板,然后替换,浪费不必要ASP资源.这些处理全部都省去了。你会发现写ASP文件变得更加方便,因为你再也不需要在其中控制替换,逻辑显示的行为。在ASP中直接执行肯定比替换要来得迅速和稳定.况且,加载模板的时候你必须还要加载一个组件.
         写到这里,你也许明白了这种模板的精髓了,它只是一种设计模式,不是一个用模板类来处理的模板引擎。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值