我使用PHP构建了一个iPhone webapp。主要(也是唯一)页面包含 apple-mobile-web-app-capable 和 apple-touch-fullscreen 元标记,以便一旦添加到主屏幕。但是,似乎每次我从主屏幕启动应用程序时,都会使用页面的缓存版本而不是刷新页面(当然,我需要在启动时更新页面,并且不能在这里使用Ajax - 需要使用SSO phpCAS动态验证用户)。我没有使用任何清单文件,并尝试添加有关缓存的元标记,但没有成功。有人知道如何解决这个问题吗?
由于
答案 0 :(得分:3)
您尝试过哪些元标记?
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
应该告诉Safari不要缓存,但我还没有尝试过。
您可以使用javascript从缓存页面加载“真实”启动页面,使用任何标准技术使URL唯一,例如添加随机数。
这甚至可能适用于主要的启动页面,但我对此表示怀疑。值得一试。
我建议缓存页面只有在跳板上才会加载新页面:
UNTESTED建议:
window.onload = function () {
if (navigator.standalone) {
document.location.href = 'http://your.com/whatever.php?randomjunk=1234') }
}
因此,如果页面在浏览器中,它可以提供有关保存到主屏幕的说明,如果从主屏幕运行它将加载真实页面。
答案 1 :(得分:2)
我知道当你包含一个清单文件时,主页面会自动缓存,但我不认为它只是在使用... web-app-capable时才会发生。您是否尝试过使用缓存清单文件并在“网络:”下列出您的页面,以明确地将其从此缓存方法中排除?如果不是这个,则必须与标题和元信息有关。
答案 2 :(得分:-1)
您必须使用HTML5缓存清单,如下所示:
from bigfloat import sub, add, mul, div, sqr, sqrt, precision
a=1e-8
b=10
c=1e-8
p = 100
D = sub(sqr(b) , mul(4, mul(a,c) ), precision(p))
x1 = div( - add(b , sqrt(D, precision(p))) , mul(2,a), precision(p))
x2 = div( - sub(b , sqrt(D, precision(p))) , mul(2,a), precision(p))
print x1,x2
-999999999.99999997907743916987153 -9.9999999999981901320509082432747e-10
请在此阅读Apple关于HTML5 Offline Application Cache
的文档