当网站的 CSS 及 Javascript (.css 及 .js) 作出修改后,这些更新可能不会立即呈现及访客,这是因为浏览器为了提高开启网站的速度,会将 .js 及 .css 档储存在快取内,下次进入网站时不会重新加载所致。
网站访客可以清除网站的快取然后重新加载,便会看到新内容。但网站管理员总不能要求每个访客这样做,需要在网页的层面解决。
一个简单的解法是在 HTML 的 Meta Tag 加入控制快取的指示,例如:
|
1 2 |
<meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> |
但这个方法很多时都不会长时间有效。
另一个较简单实用的方法是在档名后面加上一个 GET 变量,这个 GET 变量可以是日期时间,也可以是版本号,例如:
|
1 2 |
<link rel="stylesheet" type="text/css" href="style.css?version=1.0"> <script src="myscripts.js?version=1.0"></script> |
当下次修改 CSS 或 JS 后,在网站的 HTML 修改这个版本号即可。
如果在 PHP 的网页,可以用以下方法,每次自动定义一个新的 GET 变量:
|
1 |
<link rel="stylesheet" type="text/css" href="style.css?version=<?php echo time(); ?>"> |
如果网页不是用 PHP 开发,可以用 Javascript 来完成:
|
1 2 3 4 5 6 7 |
<script type="text/javascript" language="javascript"> var versionUpdate = (new Date()).getTime(); var script = document.createElement("script"); script.type = "text/javascript"; script.src = "/myProduct/scripts/myUpdates.js?v=" + versionUpdate; document.body.appendChild(script); </script> |
但这个加上 GET 变量的方法也是有缺点的,因为每次都会重新加载 CSS 及 JS, 对服务器产生较多连线,以及访客会用多一点时间加载网页,所以最好只选择一些较常改动的 CSS 及 JS 档使用。