【问题标题】:Stop IE from caching iframe opened via jquery modal dialog停止 IE 缓存通过 jquery 模式对话框打开的 iframe
【发布时间】:2011-06-14 21:15:10
【问题描述】:

已更新:找到答案。再过 7 个小时都无法提交我自己的答案...请参阅 cmets。

我打开一个对话框如下:

url = 'edit/MyPage.aspx?appid=3&value=4&' + date.getTime();
$('#modalIFrame').attr('src', url);
$('#modalDiv').dialog('open');

iframe 有一个包含几个字段(复选框、下拉菜单、文本区域)的表单。在 Chrome 中,一切都完美无缺。在 IE 中,它会持久且烦人地缓存 very。即使 shift+refresh 也无济于事。因此,如果我打开对话框,进行更改,点击提交,然后刷新页面,所有数据看起来都是正确的。但是,当我单击编辑按钮打开对话框时,它是以前的数据(数据是使用对 WCF 服务的 ajax 调用提取的)我什至等了几个小时让我的会话过期,没有运气。

正如你在上面看到的,我尝试了一个我在这里找到的技巧来欺骗 IE 认为它是一个新页面。这行不通。我还在 iframe 中页面的 Page_Load 中添加了以下代码:

Response.Cache.SetCacheability(HttpCacheability.NoCache)

以及 HTML 的以下元标记:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">

我完全迷路了,任何想法都将不胜感激。

【问题讨论】:

  • 好的,所以我不能回答我自己的问题,但是...
  • 好的,我发现它是被缓存在 IE 中的 WCF 服务。对我来说似乎很奇怪,但我在 ajax 调用中添加了一个时间戳,现在它可以工作了! var date = new Date();数据:{“appid”:appid,“serverid”:serverid,“timestamp”:date.getTime()},

标签: jquery internet-explorer iframe cache-control


【解决方案1】:

好的,我发现它是缓存在 IE 中的 WCF 服务(对我来说没有意义,但无论如何)。我在 ajax 调用中添加了一个时间戳,现在它可以工作了!

data: { "appid": appid, "serverid": serverid, "timestamp": date.getTime() },

【讨论】:

  • 我想知道为什么我们必须以这种方式“破解”......我也遇到了这个问题 - 通过添加时间戳,我可以看到它迫使它离开不是同一个调用,但是为什么它被缓存了,有没有正确的方法告诉它不要呢?
  • 希望我能提供帮助,但我已经继续前进了,这从未引起太多关注。
猜你喜欢
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多