如何在下次登录时清除客户端缓存

pnk*_*dgr 9 javascript webserver caching browser-cache

我有一个在hostgator上运行的应用程序.当我更改js文件时,我的用户在清除缓存之前看不到更改.这是推动我的应用程序更改的唯一选择吗?基本上,我应该进行更改,更新文件,然后请求所有用户清除缓存?

Ell*_* B. 14

您需要在文件包含上使用版本控制.无论何时更改文件包含的URI,浏览器都不会找到缓存匹配,并会重新下载包含.

例如:

<script type="text/javascript" src="include/232/init.js"></script>
Run Code Online (Sandbox Code Playgroud)

其中232是您的可修改版本号,每当您发布新代码时都应该更改.

或者,您可以使用查询字符串:

<script type="text/javascript" src="include/init.js?232"></script>
Run Code Online (Sandbox Code Playgroud)

关键是,每当您希望访问者重新下载文件时,您应该以某种方式更改文件包含URI.

如果您使用PHP或其他服务器端语言,你可以设置到时,您的文件包括自动出现该版本被修改:http://derek.io/blog/2009/auto-versioning-javascript-and-css-files/


Jos*_*ber 5

您可以将伪查询字符串附加到资产URL:

<link href="http://mysite.com/main.css?v=1" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)

然后,每当对CSS进行任何更改时,只需增加版本号即可。

此技术称为缓存清除在Google中搜索该内容,您会得到许多不同的变化。