在reply.asp提交内容后,我们立即调用生成静态的功能,将整个贴子内容存储为viewThread_xxxx.htm之类的静态html文件,再通常情况下访问viewThread.asp?ID=xxxx的时候,系统自动 redirect到对应的静态文件viewThreadxxxx.htm去。这样,当一个贴子没有最新发布时候,他始终是静态内容提供给浏览者;一旦有了新的提交,将会更新到静态文件中去,这样,将会节省很多次数据库操作,大大提高响应速度。
listBorad.asp也可以实施静态化。我们可以分析其可能携带的参数,将缓存文件名设定为listBoard_xx.htm,在增加新的栏目时候进行更新 listBoard_xxx.htm。listThread.asp也类似,只不过由于其参数更多,所以缓存文件也会很多。击若要缓存 listThread.asp? subBID=xxx&page=2,那么对应的静态文件是listThread_xxx_p2.htm。default.asp也一样。
那么如何判断什么时候更新?在什么时机更新?
讨论listThread.asp? subBID=xxx&page=2,我们在执行listThread.asp俄时候提取subID和page,然后探测 listThread_xxx_p2.htm是否存在,如果不存在就调用静态生成功能进行生成该文件,最终重定向到此静态文件。注意,此处的不存在就意味着出现了新的内容需要我们进行更新。
那如何造成文件不存在呢?删除。我们在发表一个新的贴子、删除贴子、移动贴子的时候我们可以将类似listThread_xxx_p2.htm之类的静态文件全部删除。这样就通知了何时要进行缓存。
现在还剩下一个问题,如何生成静态文件?
我们注意到,之前我们提到的“同样的内容”。我们可以将改造前的default.asp、listThread.asp等拷贝一个副本,取名为default_d.asp、listThread_2.asp,且在同一个目录中(理论上 listThtrad.asp?subID=123同LISTtHREAD_D.ASP?SUBID=123的访问结果会是同样的内容),这样我们在需要生成静态文件的逻辑中,通过WEB访问请求的方式调用改造前的副本,得到html代码,并存储为静态文件。这个web请求实际上相当于在任何真实浏览者访问静态内容之前,由服务器自身现察看将会输出的html,然后返回这些代码,利用文件操作功能存储为静态文件。这样,缓存文件就在真正浏览者之前被创建。
这样的方案几乎不触动原来的布局,几乎不会造成因为改造出现404之类的错误。其次,静态文件也会帮助你的站点容易被被google之类的搜索引擎收录。何乐而不为?
最后,提醒,通过web访问,asp编程环境下,很多人采用xmlHTTP组件访问,这会造成很多问题。 xmlhttp自身会cache请求的资源,导致我们通过此组件请求得到的内容不是最新的,造成逻辑上的混乱。所以,应当选择xml Server http对象或者winhttp组件来实现web请求资源。
使用ASP中的缓存技术可以很大程度上提高你的网站性能,其实这些实现方法是非常的简单,它将说明如何在服务器上的缓存是如何工作以及你如何使用一种被称为断开连接的ADO连接技术。









