我正在设计一个 JavaScript 小部件,它将显示一个 iframe,其中包含由 php 创建的随机广告。
每次刷新页面时,都会创建一组新的随机广告。
当用户点击广告时,他会被重定向到广告所代表的网站。
当用户使用后退按钮时会出现问题。
由于后退按钮只会显示缓存页面,因此会出现相同的广告,这是我不想要的。
由于展示广告的网站不属于我,因此我无法访问头文件。
即使使用JavaScript重新加载功能,JavaScript文件仍然会被缓存。
任何帮助将不胜感激。
最佳答案
问题是Javascript的缓存是由浏览器控制的客户端机制。因此,一种方法是使用 no-cache header 告诉浏览器不要缓存:
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
另一种选择是通过使用 Javascript 在末尾添加随机数来使请求看起来每次都是唯一的:
var img.src = 'www.mysite.com/ads.php'+'?'+Math.random()*Math.random();
return $(img).load(function()
{
alert('completed!');
});
如果您使用 jQuery,最后一个选项是:
$.ajax({
url: 'test.html',
cache: false,
success: function(html){
$('#results').append(html);
}
});
关于php - 按下后退按钮时 JavaScript 文件被缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9952550/