将缓存带有扩展名php的html脚本标记中的脚本吗?

时间:2008-11-19 08:12:04

标签: php javascript html browser

例如,

<script type="text/javascript" src="assets/scripts/somescript.php"></script> 我的浏览器是否仍会通过不将此脚本标头元标记缓存设置为必须重新验证来缓存此内容?

3 个答案:

答案 0 :(得分:2)

有些浏览器使用默认缓存比其他浏览器更具攻击性。但是,您可以发送缓存控制标头以指示何时重新加载代码。

header("Expires: " . date("r", time() + ( 60 * 60 * 24 * 7 * 1 ) ) ); // Expires in 1 week
header("Content-Type: application/x-javascript");

我是否已知使用的代码片段。

您可以使用更多花哨的东西,例如If-Not-Modified标头和ETag,但过期时间是唯一消除额外服务器调用的时间。

答案 1 :(得分:0)

如果您发送Content-type: text/javascript; charset="your_charset",浏览器会将您的PHP脚本识别为有效的Javascript资源,并将像任何其他Javascript一样处理它。您可以使用header()在PHP脚本中发出正确的标头来控制浏览器缓存行为。

答案 2 :(得分:0)

一个技巧是编写脚本标记,并在其上添加不断变化的查询字符串。您的主PHP可以写出以下内容,每天都会更改:

<script type="text/javascript" src="assets/scripts/somescript.php?date=20081118"></script> 

somescript.php将忽略查询字符串,但浏览器每次都会将URL视为新的,并重新加载脚本。