缓存网页
到现在为止,我们正在写一些相当复杂的代码。 服务器必须停下来分析每个动态生成的网页。你可以很简单地编写一个函数象上面的dotable(),但是,可怜的老服务器不得不做更多的工作来生成结果。
有时候,这能导致你的页面显示起来比较慢。 对这点可能没有什么好办法。如果你正在写报告,每次写得都不一样,你只能等待。 然而,你可能生成将会保持一段时间内容不变的网页。比如说一篇博客,在你提交下一篇之前,你没有什么变化,如果有一千个读者来看你的博客,每个
视图都是一样的,而你却需要浪费时间去动态生成同样的页面,一次又一次。
解决之道是缓存网页。你一次生成网页,然后把生成的HTML文件保存在缓存目录中,加上一个时间戳,然后被显示到用户的浏览器上。然后,当一下个读者请求 页面时,系统检查离上次生成和保存有多长的间隔,如果还在你设定的时间范围内,它继续返回缓存页面,如果不是,它将更新页面。
听起来这里像需要一些复杂的编程工作,其实如果你使用CI,你只需要做二件事情:
找到你网站中的/system/
cache目录,它应该是空的, 除了一个index.html文件。 确定此目录是可读写的-也就是如果在Linux系统上,权限设为666。
插入, 在一个产生 HTML 页的控制器的函数中加上:
$this->output->cache(5);
5是你想要你的缓存持续的分钟数,即在页面被重新生成前会持续多长时间使用静态HTML文件。
搞定。 如果你现在装载函数,你将会像往常一样见到页面被装载。 如果你现在观察你的 /system/cache目录,当然,你将会在那里里面见到一个新的文件,有一个无意义的名称。
把它在一个文本编辑器里打开,你将会见到它包含 HTML 代码, 加上一个时间戳。如果你请求相同的页,在五分钟之内,你将会得到被缓存的页面。超过这个时间段,你的下一次请求将会自动地删除它而且用一个较新的版本替代它。
如果你不想缓冲页面, 从你的控制器中删除this->output->cache(5)这一行,你的页面将每次刷新。 (最后一个被保存的文件将会留在你的 /system/cache目录,直到你手工删除它。) 如果你想要继续缓冲, 但是偶然地删除一个缓存文件, 不要紧张; 当那一页下一次被调用时,系统将会产生新的。
CI让这一切变得快和简单,它正在试着缓存每一页!只是要记住这一点:要缓存内容不频繁改变的页面,其它情况就不要使用缓存功能。
转载于:https://www.cnblogs.com/qcl_008/archive/2008/08/27/1277708.html