gpt4 book ai didi

asp.net - Safari 9.1 更新破坏了 iframe 缓存

转载 作者:行者123 更新时间:2023-12-02 10:08:43 25 4
gpt4 key购买 nike

我遇到了 Safari 缓存我的 iFrame 的问题。以下(伪)HTML(好吧,它是一个 aspx 页面)在 Safari 9.0 以及 Mac 和 PC 上的所有其他浏览器中都可以。

<html>
<body>
<iframe id="page1" src="Page1.aspx" />
<iframe id="page2" src="Page2.aspx" />
</body>
</html>

在 Safari 版本 9.1 中,即使

  1. 开发者工具栏中的缓存已完全关闭
  2. 我按 Mac+R 重新加载页面

它将向服务器发送调用以获取 Page1 或 Page2,但不会显示它将呈现该页面的旧版本。据我所知,没有 Javascript 错误或类似错误。

我知道我可以添加一个随机数或类似的东西,但是,这只能部分帮助,因为 iframe 内的回发将再次显示缓存的页面。

还有其他人找到了解决方法吗?我还设置了所有 prama 无缓存等以避免这种情况,但没有运气。

我也在 E​​l Capitan 中尝试过此操作,结果相同,因此它看起来像是连接到 Safari 9.1 更新 (10601.5.17.4)

我还跟踪了服务器上的流量,请求实际上正在发生,并且正确的 html 返回到客户端,但这在 Safari 网络跟踪的“网络”部分中不可见。 ASP.Net v.4.0。

MacBook Air、OS X Yosemite (10.10.5)、Safari 版本 9.1 (10601.5.17.4)

最佳答案

我们在我们的应用程序中发现了同样的问题。我们在 iframe 中呈现一些内容,这些内容由外部页面中的控件更改。从 Safari 9.1 开始,iframe 不会呈现更改,即使它确实从服务器获取更新的内容。

使用上下文菜单在新选项卡中显示 iframe 会显示更新的内容,而无需重新获取,因此它显然位于 Safari 的内存中,但只是不会在 iframe 上下文中渲染到屏幕上。

现在看来,唯一的解决方案是开始使用缓存总线 URL,就像过去糟糕的日子一样......在这种情况下,Safari 确实应该尊重缓存控制 header 。

关于asp.net - Safari 9.1 更新破坏了 iframe 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36545379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com