缓存:把数据放到内存里面,下次请求的时候,直接从内存读取数据返回给客户端就可以了,不用再去访问数据库或者磁盘,用内存空间换磁盘读的时间。
页面缓存
使用@OutputCatch指令能够声明页面输出缓存,Duration表示缓存的时间。一秒为单位,超过这个时间缓存失效,再次生成以后还会再缓存20秒,依次类推。
这个缓存是在服务器缓存的,不是在客户端,因为用HttpWatch还是能看到向服务器提交的请求的,只不过服务器看到有还粗就没有再执行页面类。
缓存针对所有这个页面的访问者。这样1个访问者和一万个访问者、一次访问和100万次访问对数据库的压力是一样的。
<%@ OutputCache Duration="20" VaryByParam="none" %>
对于看新闻页面来讲,如果上面设置的话,则会缓存在第一个看到的新闻,因为?id=2、?id=3只是页面的不同参数而已,为了能让不同的新闻各自缓存,因此可以设置VaryByParam="id",表示对于相同页面的不同id参数进行单独缓存。多参数的话VaryByParam="id;number",分号隔开。
如果想让任何不同的查询字符串都创建不同的缓存,则设置VaryByParam="*",一般情况下设置"*"就足够。