javascript - iOS PhoneGap。防止 iFrame 缓存

标签 javascript ios ipad html cordova

在 iPad 的 PhoneGap 应用程序中,我有一个 iFrame,它显示存储在在线数据库中的数据。接下来,我通过 JSON 下载此数据并在应用程序中对其进行编辑。完成后,我返回 iFrame,但它仍然显示旧数据。使用 JSON 我得到了新的正确数据。

...简而言之,应用程序缓存 iFrame 的内容

我尝试了一切方法来防止缓存,包括页面中常见的元标记内容

<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />

并使用时间戳作为获取参数来调用页面。我什至尝试通过 JavaScript 重新渲染整个 iFrame,但仍然不起作用。

function loadFrame() {
var cid = localStorage.getItem("cid");  
var ts = new Date().getTime();
var url = pageURL+"?c=" +cid + "&timestamp=" + ts;

localStorage.removeItem("cid");

ifid = "iframe_" + ts;  

$("#iframe_wrap").html('<iframe name="iframe" id="'+ifid+'" src="'+url+'" class="fullscreen"></iframe>');
$("#"+ifid).hide();
$("#"+ifid).one("load",onLoad);

console.log("URL in iFrame '#"+ifid+"': "+url);
}

只有当我重新启动应用程序时,我才会看到新页面

有什么办法可以解决这个问题吗?

最佳答案

我解决了这个问题,但这只是部分 iOS 的错误!

我忘记提及的是,iFrame 中的页面还显示来自 AJAX 请求的数据。在 iOS 6 中,AJAX 请求会被缓存,即使您说“cache: false”(我们使用 jQuery)。

因此,要获取最新数据,您必须添加一个随机但每次唯一的值作为参数(我使用时间戳)。我建议我的同事(他制作了数据显示页面)添加此参数,现在它可以工作了。

当我直接在应用程序中加载数据时,我已经做了这个技巧,但他没有:)

关于javascript - iOS PhoneGap。防止 iFrame 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779337/

相关文章:

javascript - 如何在移动设备中加载特定的 jquery 代码

ios - 在 IOS 中从本地存储存储和检索 JSON 数据

ios - 在 IPAD 应用程序中播种数据

ios - 定义与以前的值冲突 - Xcode 6.3.2

ios - firebase_screen_class 是什么意思

iphone - 下载一个应用程序并安装 2 个应用程序

iOS 如何在应用程序中实现一个长的、可滚动的日志功能?

javascript - 想要阻止默认打开下拉菜单

javascript - 我如何使用相同的命名空间扩展 jquery 插件

javascript - 根据方向裁剪图像?