php - 按下后退按钮时 JavaScript 文件被缓存

标签 php javascript html

我正在设计一个 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/

相关文章:

php - 使用我的公钥加密 php 联系表

php - exec - PHP return_val 为 126

javascript - 输入文本的 html 自动完成功能不起作用;没有历史显示

html - 如何相对于 flexbox 祖 parent 垂直居中 div?

html - 如何在不使用 CSS 3 功能的情况下实现这种两列的流体布局,第一列有额外的宽度限制?

php - swiftmailer 文本/普通换行符?

php - PDO Mysql,想要更新甚至插入数据

javascript - 如何检查字符串的前 5 个字符和后 5 个字符?

javascript - 将航路点信息传递给 comgooglemaps(Google map URL 方案)

javascript - 如何在angularjs中拆分日期时间