你说的内容和你的标题有出入,从内容描述来看,跟xml没什么关系。如果硬要扯上关系的话,最有可能你说的是xmlhttp,因为有Asper通过这种方式来生成静态页,但是效率有很大的问题。
接下来说说你要讨论的问题,就是ASP生成静态页后怎么在更新数据库时同时保持html静态页一起更新。我觉得,不外乎以下几种方法:
1、最常用也最简单的办法,就是在更新数据库操作的时候重新生成html页。优点不用说了,缺点也是显而易见的,就是数据量大的时候效率很成问题,如果是用xmlhttp访问动态地址进行更新,更是噩梦一枚。
2、生成静态页的时候不生成html而生成shtml,这样可以包含一些可动态更新的部分。优点是不用重新生成页面,缺点是只能对页面的一部分(主要是公共部分)进行更新,好像不太实用。
3、最后一种方法是我的一个思路,大家姑且听听看。这个方法主要是利用静态缓存的思路和404.asp,需要服务器的404支持ASP(当然,如果有rewriteurl组件也行)。
首先用404.asp或者rewrite组件定义所有的404到一个asp处理页面,这样如果生成的静态页不存在的时候就可以利用程序重新生成。
其次,原来的ASP程序那里需要做的就是在更新数据库内容的时候删除原来生成的静态页(删除肯定比重新生成要快)。
这样一来,访问者在访问某个静态页时,如果这个静态页不存在,会被404.asp接管,并从数据库中调用数据重新生成这个页面,在下一次更新内容前,这个页面都不需要重新生成,如果没有人访问,还可以节约空间^_^。而唯一的缺点就是第一个访问者的速度会比较慢,因为是从数据库中取数据,但是后面的人都直接访问的是静态页面。要解决这个问题也很简单,自己写一个蜘蛛在夜深人静的时候爬一遍自己的网站就可以了。
这其实是缓存的用法,只是用在生成静态页面上面了而已。欢迎拍砖。
至于Ajax什么的,只是浮云,装假是静态而已,对效率提升和SEO都是没有用处的,不要忘了生成静态页的初衷是什么。