到目前为止我们给动态内容引入了缓存,它在一定程度上避免了动态内容不必要的重复计算,缩短了请求响应时间并提高了服务器吞吐率,但是,动态内容的目的在于提供变化的内容,所以它的缓存不可能长期有效,否则失去了动态内容的意义,所以动态内容的缓存机制必须能够判断缓存何时过期,以及核实需要生成新的缓存。
为每个缓存标记过期时间,然后动态内容每次对缓存进行过期检查,这是一种常见的缓存过期检查策略,实现方法很多在smarty中,缓存过期时间标记在什么地方呢?
我们来对这个动态网页指定缓存有效期长度,以秒为单位,比如我们这里设置了1个小时。
$this->smarty->cache_lifetime=60*60;
我们再回过头来看刚才的缓存文件E6C210ED%%place_posts.html,一下是文件开头的一段内容:
有意思的是,在缓存的HTML正文之前,有一长段不知所云的数据,当你用php的unserialize()方法进行反序列化处理,可以得到以下的数据结构
其中有两段是:
这两个参数一个代表的是创建文件的时间一个是缓存过期的时间,为什么要记录这两个时间呢,因为这两个参数对应的是两种检查缓存过期时间的方法