浅析模板及静态化实现

1 篇文章 0 订阅

 很多互联网应用都提供了模板和生成静态网页功能,提高了网站访问速度及可配置化程度。

1.模板

     相对于PHP,Asp模板的实现比较单一,最简单的是纯替换,用动态数据替换模板页中的标记。一般用FSO或ADODB.Stream读入模板页进行解析。主要有两种解析方法,一种是将模板分成块,包括文本块和标记块,对标记块进行替换,比如asptemplate类,VBSTemplate。另一种方法是使用基于对象的方法,将整个模板文件解析为节点树,从根节点开始遍历树,根据节点名称调用相应的处理模块,最据有代表意义的是KudzuASP(也可以去www.ifree2008.com下载修改版的,扩展了一些功能),它实现了几个标准模块,比如if...else,循环结构等,你也可以自己写一些扩展模块,然后注册到引擎,就能解析自定义标记了,比较容易模块化。

    如果可能的话,可以使用PHP,模板实现方法比较灵活,并且有很多免费的模板引擎可以使用,比如使用比较多的smarty.除了上述两种实现方法,由于PHP支持动态include,可以对模板进行预编译,生成.php文件

2.静态化

    静态页的处理速度是最快的,Web服务器直接读取该文件即可,如果用.shtml的话,还可以处理包含。Asp中可以用fso或adodb.stream将解析结果保存为静态页。PHP本身提供了丰富的IO操作函数,输出过程大致如下

ob_start(); /打开输出缓冲区

include("预编译后的.php文件");

str = ob_get_contents();

ob_end_clean();

然后将str内容保存为.html或shtml.

  有一个问题是,对于经常更新的内容静态化问题,比如最新列表。需要频繁更新包含这些列表的html页面,通常的解决方法是,对于常用的模块生成.js文件,在html文件中用<script src='latestnews12.js'></script>就可以输出类别id为12的最新新闻列表,如果更新了这个类的内容,在后台只要刷新相关js模块就可以了。

 

现在有很多开源的PHP系统,比如帝国CMS,DeDeCMS,UCenter Home, 读一读别人的源码,收获还是不少的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值