空的IFRAME是如何导致缓存破坏的

How does an empty IFRAME cause cache busting

本文关键字:缓存 何导致 IFRAME 空的      更新时间:2023-09-26

在用于搜索框中预测文本的javascript库中找到以下行。例如:如果你输入"红色",就会弹出一个列表,上面有"红色连衣裙、红色花朵、红色汽车等"

// Write the cache busting IFRAME
document.write('<iframe style="height:0px;width:0px;visibility:hidden;display:none;" src="about:blank">this prevents back forward cache</iframe>');

我不明白一个空的iframe是如何破坏缓存的。我见过有人在链接的末尾添加随机数来破坏缓存。。。但是这个iFrame到底是怎么回事。库很大,所以我可以共享它。如果这不是足够的代码来声明答案,很抱歉。

这是Safari浏览器的行为。来自Apple Developer文档:

Safari的后退/前进缓存(当访问者按下"后退"或"前进"浏览器按钮)确保您的页面包含一个框架。基于框架的页面永远不会存储在后/前缓存中,您可以确保您的非帧通过在下面添加不可见的iframe,based页面的行为类似。