$调试=真实;在doctype之后,为什么?

时间:2012-03-06 21:13:48

标签: php html caching

在关于css文件href后几乎相同的问题后,我猜测php $ debug = true; doctype之后还不允许浏览器缓存?如果是这样,我认为我在开发网站时理解它的用途,但是假设一旦网站上线就被删除了吗?如果内容没有改变,这不会有助于加载时间吗?

此外,我一直想知道如何限制浏览器缓存网站或网页的时间范围?例如,在1天或3小时后,存储的数据将过期。

<!DOCTYPE HTML><?php $debug=true; ?>

2 个答案:

答案 0 :(得分:1)

JUST设置$debug = true;将不会做任何事情。它只是一个您为其分配布尔值的变量。但是,如果您<{1}}中使用 $debug变量,则将$debug设置为true会导致将随机数附加到网址CSS文件,因此避免了该CSS文件的浏览器缓存。

最好在生产环境中关闭此调试,以允许浏览器使用CSS文件的缓存版本来加快页面加载速度。 或者更好的是,根本不要这样做。只需找到您的浏览器缓存设置并禁用浏览器的缓存。在IE中,您可以在“Internet选项”中将其关闭。在Firefox中,转到地址栏中的about:config并查找browser.cache.disk.enable并将其设置为false。

关于您的第二个问题,我认为您正在寻找HTML元标记other question

答案 1 :(得分:1)

设置$debug = true不会对其自身做任何事情。

在您的另一个问题中,它会阻止缓存,因为每个使用变量的位置都会修改URL以添加随机值。如果他们没有这样做,那么变量就没用了。

它设置为“在doctype之后”只是因为它位于文件的顶部附近,并且您希望尽早声明它以便可以在整个页面的其余部分使用它。

是的,如果启用了缓存(没有随机URL),它将有助于加载时间。

最后,您可以控制使用Expires标头缓存网页的时长:

header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');