Separation of form and content(形式与内容的分离)--[xml&xsl在web网页中的应用]
在制作网页的时候,我们希望它能够交互性好、快速响应和易于维护。
交互性是指与客户端的充分沟通,通过使用脚本语言(cgi、asp、php、asp.net、 jsp)实现这一点。但是:速度问题。
解决速度问题,动转静技术,通过在后台预先读取数据,结合模版,生成静态页面,供客户端访问。这种技术的缺点也是明显的:
1、要求服务器要足够的空间来放置大量的生成的静态网页;
2、当模版修改或者数据改动的时候,需要重新生成所有的静态文件。
3、限制了编程的灵活性,很多需要动态交互的功能无法实现;
4、编程者维护困难,修改起来比较麻烦。
进入正题,xml和xsl的出现,可以解决形式与内容的完全分离,可以解决上面的问题。具体做法是:
1、xml是内容。我们可以在后台从数据库读取数据,生成静态的xml文件;
2、xsl是形式。有模版专家定义形式;
3、仅需要做一个Xml与Xsl融合程序,也就是我们也来参与iis的页面解析工作。当然也与UrlRewrite-地址映射技术不同,但存在相似之处。把客户请求的数据和形式结合起来,展示给客户就可以了。(当然,这是考虑到浏览器的原因。因为IE5之前的版本是不支持Xsl的,所以我们要做后台执行转换操作)
xml和xsl结合的好处:
1、当用户换模版的时候,不需要重新生成静态网页,只是在Xml与Xsl融合时改变xsl文件即可;
2、当数据发生变化时,只需要重新生成xml数据,不需要修改整个静态页面,节省大量的代码;
3、对于技术人员,只需要考虑xml数据的编程问题,维护起来非常方便;
4、对于美工,只需要考虑xsl形式的编辑工作,维护起来非常方便。
5、可以在融合的时候加入动态交互程序,所以灵活性仍可以保证。
但是各种形式的SHow对搜索引擎的友好性从某种角度讲应该是一个相互体谅或者叫互惠互利的问题。话说回来,对于小型系统或站点而言,这些相关的架构考虑可能不需要很庞大。如若大小系统,方方面面的架构思路都需要非常明确,不仅仅是对数据库和web系统。