使用脚本生成静态内容只是一种糟糕的缓存形式吗?

时间:2010-05-26 20:24:49

标签: php caching

我即将开始为用户构建一个小应用程序来管理简单网站的内容。由于内容将相对不频繁地改变,因此让我感到震惊的是,根据请求动态生成每个页面将是一种浪费 - 网站上的所有内容在编辑之间将保持相同。我提出的简单解决方案是构建应用程序,以便在提交编辑时生成并保存新页面。但是,这似乎是一种糟糕的缓存重新实现。写一个脚本来保存静态页面的方法是“错误的”吗?这对小型网站来说没问题吗?是否有任何轻量级工具值得使用来实现这个小项目的整个页面的缓存?

请注意,我使用的是共享托管解决方案,但无法调整/安装内容。

2 个答案:

答案 0 :(得分:1)

生成静态站点与使用缓存的优势在于,从不需要检查页面是否在缓存中或由于LRU算法而被删除。只要您在编辑时立即生成它们,我就会发现您的工作方式没有问题。

答案 1 :(得分:-1)

当我参与这些项目,小项目时,我只是制作了一个小工具来缓存该网站上所有访问过的页面。

例如:

如果有人正在重写我的重写:http://www.example.com/about-us.html它会访问http://www.example.com/about-us.php

在我的全局文件中我做了这样的事情:

当有人进入该页面时,我会检查/cache/about-us.html是否存在,如果不存在,我会$cache_content = implode('', file('http://www.example.com/about-us.php'));从外面打开网页,然后写入磁盘..我还添加了一些过期标题如:

<?php
$cache_content = implode('', file('http://www.example.com/about-us.php'));
$date_cached = date('U');

$data = $date_cached."\n".$cache_content;

$fp = fopen('/cache/about-us.html', 'w');
fwrite($fp, $data);
fclose($fp);
?>

然后在global.php文件上,就像我上面告诉你的那样检查该文件,如果它发现它打开并读取该日期,如果日期是3天,我重新生成文件。

我还在CMS中添加了一种清除所有缓存的方法。

祝你好运。