如何创建脱机启用的Web应用程序,例如当用户访问hxxp:// mywebsite /时显示 ,并且显示hxxp:// mywebsite/offline /以外的状态。 [在我的网站中有大约100个不同的动态页面,所以我无法在缓存清单文件中将它们全部硬编码]在缓存清单文件的FALLBACK部分中使用通配符HTML5
回答
CACHE MANIFEST
CACHE:
/Offline/OfflineIndex.html
FALLBACK:
//Offline/OfflineIndex.html
NETWORK:
*
这将导致整个网站的所有网页在离线时重定向到离线。唯一的问题是声明清单的页面始终被缓存。这意味着您无法在每个页面上声明清单,因为每个访问过的页面都将自行缓存并且不会重定向。所以你能做的就是声明你在另一个HTML文件清单(IE。Synchronize.html),然后从您的应用程序是否已提供用于离线通过存储cookie或localcache值默认勾选。如果没有重定向到声明的清单的synchronize.html,请设置localcache值,然后重定向回到索引。
OFFLINE AWESOMENESSSSSSSSSSS !!!!
我引用“manifest.php”而不是“cache.manifest”,然后我的PHP文件看起来像这样:
<?php
header('Content-Type: text/cache-manifest');
echo "CACHE MANIFEST\n";
$hashes = "";
$dir = new RecursiveDirectoryIterator(".");
foreach(new RecursiveIteratorIterator($dir) as $file) {
$info = pathinfo($file);
if ($file->IsFile() &&
$file != "./manifest.php" &&
substr($file->getFilename(), 0, 1) != ".")
{
echo $file . "\n";
$hashes .= md5_file($file);
}
}
echo "# Hash: " . md5($hashes) . "\n";
?>
文件哈希它跟上最新的,这样,如果任何文件的变化清单也会改变。希望有所帮助:)
但我该如何生成FALLBACK条目? – ashishb 2010-09-20 09:55:44
你只需要建立一些逻辑放到该脚本可以列出后备文件(基于路径,文件名等)分开。循环一次,排除FALLBACK文件。再次循环,只包含FALLBACK文件。 – ggutenberg 2010-09-20 11:06:58
参考在你的索引页一种无形的iframe您的清单文件。这样,你的索引页不被缓存,因为它通常是在默认情况下,你必须在你的回退总量控制...
无需不可靠的饼干或localStorage的!
- 1. HTML5缓存(清单)网络部分
- 2. HTML5缓存清单
- 3. HTML5缓存清单缓存一切
- 4. HTML5缓存清单异常
- 5. iPhone和HTML5缓存清单
- 6. html5缓存清单设置
- 7. HTML5清单缓存问题
- 8. 移动Safari中的HTML5缓存清单
- 9. HTML5缓存清单:后备部分和网络*
- 10. 悬挂在缓存清单文件上的HTML5浏览器
- 11. HTML5缓存清单工程通过HTTP但没有使用https
- 12. HTML5应用程序清单不清除缓存清单更改
- 13. 使用通配符在缓存区中应用程序缓存
- 14. 我的HTML5应用程序缓存清单是缓存一切
- 15. 在Glob中使用部分通配符
- 16. 将外部文件包含在缓存清单中可以吗?
- 17. 如何在HTML5缓存清单中指定通配符以加载目录中的所有图像?
- 18. 如何使用CakePHP使用html5缓存清单?
- 19. 我可以在MVC2中使用缓存清单文件吗?
- 20. HTML5缓存清单index.html不加载链接文件
- 21. html5缓存清单与head.js兼容吗?
- 22. HTML5缓存清单和预取
- 23. HTML5缓存清单和内容类型
- 24. HTML5缓存清单后退页面
- 25. HTML5缓存清单未上传
- 26. 清单文件不禁用缓存
- 27. 在mvc3和Windows Azure中的html5缓存清单文件返回500错误
- 28. Javascript停止使用HTML5清单文件
- 29. 如何使用通配符部分搜索文件在VBS
- 30. getFilename函数 - 缓存的清单文件
并不完全符合我的要求,但对于其他人阅读以获得对离线HTML5更深入的了解仍然是一个很好的答案。 – ashishb 2010-11-29 20:21:18
清单的缓存是通过循环抛出的。这虽然帮助我们澄清了很多。谢谢 – drogon 2012-05-17 19:59:04