对动态页面创建技术的批评之一是说,它们的可伸缩性较差,而且比仅给客户端发送静态HTML文件需要更多的服务器资源。对此,许多站点都采用批处理页面并将结果保存为磁盘的静态HTML文件,来作为解决的方法。但是,这种方法只有在每次的内容与客户端不直接相关时才行得通。换句话说,要求对于所有的请求页面都必须相同。比如,对于产品目录和报告,更新进程只需在创建页面的数据发生变化时运行。 ASP.NET有一个称之为动态输出高速缓存的新属性,它可以自动实现相同的效果,而不需将页面写到磁盘。也就是说,它可以将自动生成的输出(即客户端接受的内容)高速缓存起来,而且对于以后的请求也可使用这个高速缓存副本,这比将内容写为一个磁盘文件要好,因为它省去了每次要访问磁盘的需要。 当然,只有在对该页面的所有请求其页面内容都相同时,这种方法才有用。但是,高速缓存可以随参数集的不同而变化,包括查询字符串、浏览器类型、用户控制端以及自定义值,而且ASP.NET只有在参数也相同时才会使用高速缓存的副本。所以,要正确提供依赖于查询字符串的内容变化的页面——如果查询字符串的内容与创建高速缓存的副本时使用的不同,就要创建一个新的副本取代旧的。新副本也被高速缓存,然后提供匹配查询字符串值的客户端就可以利用它。
|