iPhone Web App禁用缓存

Ben*_*oit 6 javascript iphone safari web-applications mobile-safari

我用PHP构建了一个iPhone webapp.主要(也是唯一)页面包括apple-mobile-web-app-capableapple-touch-fullscreen元标记,以便一旦添加到主屏幕就可以全屏运行.但是,似乎每次我从主屏幕启动应用程序时,都会使用页面的缓存版本而不是刷新页面(当然,我需要在启动时更新页面,并且不能在这里使用Ajax - 需要使用SSO phpCAS动态验证用户).我没有使用任何清单文件,并尝试添加有关缓存的元标记,但没有成功.有人知道如何解决这个问题吗?

谢谢

小智 3

您尝试过哪些元标签?

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
Run Code Online (Sandbox Code Playgroud)

应该告诉 Safari 不要缓存,但我还没有尝试过。

您可以使用 javascript 从缓存页面加载“真实”启动页面,使用任何标准技术使 URL 唯一,例如添加随机数。

这甚至可能适用于主启动页面,但我对此表示怀疑。不过值得一试。


我建议缓存页面仅在跳板上加载新页面:

未经测试的建议:

window.onload = function () {
   if (navigator.standalone) {
     document.location.href = 'http://your.com/whatever.php?randomjunk=1234')  }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果页面位于浏览器中,它可以给出保存到主屏幕的说明,如果从主屏幕运行,它将加载真实页面。