巧用HttpHandler管理Xslt

来博客园差不多一年多的时间了,一直都是潜水。感觉自己的知识很单薄,只能努力向各位大牛学习。今天鼓起万分勇气,抱着与大家一起分享的愿望,写了这片文章。还望大家多多拍砖。
好了,废话不多说。进入主题,这篇文章不是介绍xslt的使用方法,关于这类文章,随便在Google,百度一面一搜就是一打。
我想介绍的是,如果用HttpHandler来管理xslt的。有这样的一个想法,主要是来源于公司今年推出的一个产品(选才网)中有好几处都采用了xml+xslt来实现的。
采用xslt的优点我就不重复了,而缺点不知道大家有没有和我一样的感受。不太容易配置。我这里指的的配置,是指,比如说,xslt里面需要引用某个JS,而这个JS的路径根据开发环境和生产环境的不同,路径也会不同。还有就是子系统一多,系统直接访问就可能会牵扯到跨域的问题,这么一来还要在相关xslt文件里面加上Domain的脚本,这样一来,每次发布的时候,都需要来来回回到处配置。我是很讨厌太多配置的,并且还是分布在很多不同的位置。
所以产生了写这么个handler的想法,主要是用来解决这么4个问题:
1. 能够自动为指定Xslt加上Domain。
2. 能够自动为指定Xslt加上指定的一个或多个JS。
3. 能够给Xslt做一下压缩(去空格,去换行)。
4. 能够控制一下客户端缓存。

那么定义Xml中xml-stylesheet连接地址为:xslt.axd?path=~/Common/XSLT/CV/resume.xslt&include=jquery.js&v=1.6.0.27201&age=2592000
path: 就是指定的xslt文件的路径。
include: 需要引用的JS的名称。多个用半角逗号隔开。这里我没用用全路径。考虑到怕JS一多,路径一长,导致url超过限制了。
v: 这个主要是用于强制更新客户端缓存而用的。
age: 这个就是指定客户端缓存的生命期。以秒为单位。加入这个主要是考虑到,每个XSLT根据用途的不同,可能缓存的时间也是不同的。

那么介绍就这么多, 接下来就直接贴代码了。

 

Code

 

不知道大家是否能够看明白。嘿嘿,第一次写文章,肯定有很多问题。希望大家能够多多指点。也希望能给和我遇到一样问题的同志们有那么一点点帮助。
代码中也有部分注释。如果有朋友没看太明白的,可以提出问题,我尽力解释。

我的MSN是:Wright.Jin@Hotmail.com 欢迎大家一起交流

posted @ 2009-04-24 16:35  wright jin  阅读(2005)  评论(11编辑  收藏  举报