从动态页面生成静态页面的总结

看到论坛里老有人问“把首页asp文件生在html的方法”之类的问题,特将我用过的解决方案总结如下:

方法有3种:

1、用 URL Rewrite,具体到IIS中就是ISAPI_Rewrite

URL Rewrite在不同的Web Server中有不同的实现方法,对于IIS来说最通常的做法就是用ISAPI_Rewrite这个ISAPI Filter来实现。

优点:很省事
缺点:这个办法本身不能真正起到降低数据库压力的作用。
改进:配合缓存服务器(例如:Squid、ISA Server……),可以真正起到降低数据库压力的作用。当然这么做会令页面的更新不是实时的,滞后的时间和缓存策略有关。

2、直接写文件

例如,在Windows平台、ASP技术中,就是用 FSO 或者 ADODB.Stream 来直接写文件。

缺点:很麻烦。写文件还不是最麻烦的事情,最麻烦的是维护事件触发,在必要的时候更新
优点:真正达到降低数据库压力的作用。
改进:配合SSI(Server Side Including,这是中立于Web Server的一项技术),可以减少页面更新的复杂度。

3、用Cron服务

Cron是一种定期执行脚本的服务。用它配合wget定期将动态页面写成静态页面。Cron和wget都都是GNU项目,都已经有从Linux移植到Windows的版本。

优点:省事
缺点:更新不实时,滞后事件和cron脚本的执行间隔时间有关。
改进:当需要在某种情况下数据库内容更新后马上更新页面的时候,可以通过事件触发立即执行cron脚本。



小技巧:

灵活应用客户端的<script language="javascript" type="text/javascript" />标签,可以在静态页面中实现动态功能。例如文章页面的访问计数器就可以这样去实现。

你可能感兴趣的:(总结)