iOS 独立 Web 应用在升级到 iOS7 后无法加载新内容
iOS standalone web app cant load new content after upgrade to iOS7
我有一个JavaScript应用程序,我在iPad上以独立模式运行(添加到主屏幕(。
我已经从iOS 6升级到iOS 7,现在我的应用程序总是加载相同的内容,它一直在缓存。即使我在每次应用程序加载时动态加载我的 JS 和 CSS 文件,并以唯一的时间戳作为参数。我需要它来确保JS和CSS文件没有缓存,并且在iOS 6中工作。
我尝试了以下方法:
-
从主屏幕删除应用程序
-
删除饼干和网站数据
-
重新启动苹果电脑
-
我
manifest="manifest.appcache"
删除了它(然后再次尝试 1 到 3( -
我添加了以下元标记
<meta http-equiv="cache-control" content="no-cache">
和
<meta http-equiv="pragma" content="no-cache">
-
由于我在本地开发并且该页面是从我的台式 PC 提供的,因此我尝试更改 PC 的 IP,然后尝试 1 到 3,但它没有解决我的问题。
因此,无论它们是在 HTML 文件还是 JS 中,我的所有更改都不会出现。
iOS 处理独立应用程序的方式显然发生了一些变化。我错过了什么?
-
似乎对清单文件进行更改(例如添加版本号(应该会使应用程序重新加载内容:移动Web应用程序未正确清除缓存
-
您应该向 CSS 和 JS URL 添加版本号以解决缓存问题。例如文件.css?v=2
干杯Z.
只需删除 HTML 中的清单引用,即不使用清单文件。
当您使用它时,您的清单文件是否提供正确的 mimetype?
我发现这个PHP脚本可以将正确的manifest.cache文件输出到浏览器
我前段时间做了也许它有帮助。
它会自动检查某些文件是否被修改,并强制浏览器重新加载新的 manifest.cache。
清单.php
<?php
header("Cache-Control: max-age=0, no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
header('Content-Type: text/cache-manifest');
echo "CACHE MANIFEST'n";
$hashes="";
$dir = new RecursiveDirectoryIterator(".");
foreach(new RecursiveIteratorIterator($dir) as $file){
if ($file->IsFile()&&$file!="./manifest.php"&&substr($file->getFilename(),0,1)!="."){
echo $file."'n";$hashes.=md5_file($file);
}
}
echo "NETWORK:'n";
echo "*'n";
echo "FALLBACK:'n";
echo "online.html fallback.html'n";
echo "# Hash: " . md5($hashes) . "'n";
?>
自动取款机 我无法在 iOS 7 上进行测试
如何手动刷新缓存,然后重新加载页面:
<script>
if(window.applicationCache) {
applicationCache.onnoupdate = function() { alert("debug: manifest not changed!") };
applicationCache.onupdateready = function() { location.reload() };
applicationCache.update();
}
</script>
尝试手动清除缓存。您可以通过设置执行此操作。
尝试从主屏幕中删除您的应用程序,然后在 Safari 浏览器中转到应用程序 URL,但在 Safari 中的 URL 末尾添加类似 ?v=2
的内容。然后单击"开始",并添加到主屏幕。这将确保您从服务器获取 css 和 javascript 的非缓存版本。
您还可以在 html 中的 javascript 和 css 调用末尾添加一个随机数。这将确保来自主屏幕上应用程序的所有未来请求都获得未缓存的 css 和 javascript 版本。
我找到了本教程。事实证明,ios7将网站数据存储在与cookie和数据部分不同的位置。
http://www.imore.com/how-clear-stored-website-data-ios-7-safari
- 从iPhone或iPad的主屏幕启动"设置"应用程序。
- 向下滚动并点击野生动物园。
- 现在一直滚动到底部,然后点击高级。
- 点击网站数据。请注意,在这里您可以看到iPhone或iPad网站数据占用了多少空间。
- 再次滚动到底部,然后点击删除所有网站数据。
- 再次确认您要删除所有数据的时间。
- 仅当javascript的新内容出现时,才每3秒更新一次javascript
- 如何在Ajax加载新内容时停止JavaScript执行
- 点击后,永久更改内容;悬停时,简要显示新内容
- 导致出现新内容块的标记(谷歌地图)
- CSS转换后用新内容替换空白
- 当用户到达页面右侧时加载新内容
- 如何使用jQuery显示新内容
- 使用 Javascript 在页面末尾附加新内容
- jQuery弹出显示旧内容,而不是新内容
- JSON加载新内容后访问元素
- 加载新内容时调整iframe的高度
- JqueryUI(手风琴)效果在替换为新内容后无法加载
- 删除现有内容并附加新内容
- 如何在 while 循环中清除 DIV 并添加新内容
- JavaScript在获取新内容的同时对高度进行动画处理
- 当用户使用 Dojo 滚动到底部时加载新内容
- 仅在新内容中应用 jQuery
- 如何隐藏内容(如文本,单选按钮和提交按钮)单击提交后弹出窗口并在同一弹出窗口中显示新内容
- iOS 独立 Web 应用在升级到 iOS7 后无法加载新内容
- 滑动页面过渡,下面预加载了新内容