我需要为用户生成并提供一个相对较大的JSON文件。我的意思是400KB。这是两张表的连接,随着时间的推移它可能会变得更大。我打算用它来填补HTML表格中的空白,通过数据库中的ID连接项目。服务器端和客户端缓存一个相对较大的JSON文件
为了节省带宽,我只希望客户端每天下载一次这个JSON文件。 (简单的选择似乎是“每次”和“从不”...... grr。)实际上,它会更少地更新服务器端,但我不希望它不那么频繁。 90%的浏览器是IE7/8,如果这有所作为的话。
对于服务器端缓存,我目前只是将JSON文件放入服务器上的文本文件中,如果它早于几个小时。我知道我可以使用memcached。 memcached是否比文件有相当大的优势?(单台服务器,每天1K的游客,我没有memcached的安装呢。)
每PHP手册的意见,我想这一点:
$expires = 60*60*24;
header("Pragma: public");
header("Cache-Control: maxage=".$expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');
但它似乎什么也不做。 Chrome会通知我每次直接加载生成页面时都是“OK”,并且在网络/标题选项卡下不会显示有关缓存控制的标题。我没有明确刷新。看起来我并不像是在缓存。 有没有其他方法可以节省客户端一些时间和带宽?我的最佳想法是创意修补.ajax()
缓存选项。
实际上我还没有实现Ajax调用。婴儿的步骤。 (对不起,如果我有点罗嗦,大喊大叫我,我会尽可能地改善问题,我在这里和谷歌搜索了一些搜索,但没有遇到过可能我没有正确的关键词)
注意:我在IIS 7下运行PHP,所以它是CGI。我觉得我读到这可能会有所作为。
我在前面发现了标题示例页面,但我想我没有充分利用它。你可能错过了它(我会让它更明显),但我没有使用Apache,所以mod_expires将无济于事。 – Guttsy
签出我的更新。你需要手动完成。 –