html iframe 缓存,阻止浏览器中的iframe缓存

如何防止Firefox和Safari缓存iframe内容?

我有一个简单的网页,有一个iframe到不同网站的页面。外部页和内部页都有HTTP响应头以防止缓存。当我单击浏览器中的“后退”按钮,外部页面正常工作,但无论如何,浏览器总是检索iframed页面的缓存。 IE工作正常,但Firefox和Safari都给我麻烦。

我的网页看起来像这样:

var变量总是变化。尽管事实上iframe的URL已经改变(因此,浏览器应该向该页面发出新的请求),浏览器只是获取缓存的内容。

我已经检查过来的HTTP请求和响应,我注意到,即使外部页面包含< iframe src =“webpage2.html?var = 222”/>,浏览器仍然会抓取webpage2.html ?var = 111。

这里是我到目前为止所尝试:

>更改具有随机var值的iframe网址

>将Expires,Cache-Control和Pragma标头添加到外部网页

>向内部网页添加Expires,Cache-Control和Pragma头

我无法做任何JavaScript技巧,因为我被同源策略阻止。

我的想法不多了。有谁知道如何阻止浏览器缓存iframed内容?

更新

我安装Fiddler2作为丹尼尔建议执行另一个测试,不幸的是,我仍然得到相同的结果。

这是我执行的测试:

>外页使用JSP中的Math.random()生成随机数。

>外部页面在网页上显示随机数。

>外部页面调用iframe,传入随机数。

>内页显示随机数。

通过此测试,我可以准确地查看哪些页面正在更新,哪些页面已缓存。

视觉测试

对于快速测试,我加载页面,导航到另一个页面,然后按“返回”。这里是结果:

原始页:

>外页:0.21300034290246206

>内页:0.21300034290246206

离开页面,然后击退:

>外页:0.4470929019483644

>内页:0.21300034290246206

这表明内部页面正在缓存,即使外部页面在URL中使用不同的GET参数调用它。由于某些原因,浏览器忽略了iframe正在请求新的URL的事实;它只是加载旧的。

提琴手测试

果然,Fiddler也证实了同样的事情。

(我加载页面。)

调用外部页面。 HTML:

0.21300034290246206

(我离开页面,然后回来。)

调用外部页面。 HTML:

0.4470929019483644

那么,从这个测试,它看起来好像Web浏览器不缓存页面,但它缓存的iframe的URL,然后对缓存的URL提出一个新的请求。但是,我仍然困惑如何解决这个问题。

有谁有任何想法如何阻止Web浏览器缓存iframe网址?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值