问题
I'm trying to prevent 2 JavaScript files from being cached by the browser.
I've tryed to use <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
without success. Here's my <head>
element code:
<head>
<meta charset="UTF-8">
<meta http-equiv="Cache-control" content="NO-CACHE">
<link type='text/css' href='/files/theme/popup_basic.css' rel='stylesheet' media='screen' />
<!-- JavaScript Start -->
<script type="text/javascript" src="/files/theme/gohome.js"></script>
<script type="text/javascript" src="http://192.168.0.149/redirect.js"></script>
<!-- JavaScript End -->
</head>
From my understating, this should work. But the redirect.js
file keeps being cached!
Anyone know what I'm doing wrong?
回答1:
The <meta http-equiv="Cache-control" content="NO-CACHE">
, the directive CACHE-CONTROL:NO-CACHE indicates cached information should not be used and instead requests should be forwarded to the origin server.
In order to prevent cache on every request, you may need to add some random string in url. The example below is use javascript to dynamic create a script tag and adding random number in the url, then append it.
<script language="JavaScript">
var s=document.getElementsByTagName('script')[0];
var sc=document.createElement('script');
sc.type='text/javascript';
sc.async=true;
sc.src='http://192.168.0.149/redirect.js?v' + Math.random();
s.parentNode.insertBefore(sc,s);
</script>
If just want to prevent 1 time only, just append some string to the src.
<script src="http://192.168.0.149/redirect.js?12345678"></script>
来源:https://stackoverflow.com/questions/15277786/preventing-cache-on-javascript-files