保存任何内容以供离线使用的唯一方法是使用应用程序缓存。一旦在 html 页面上启用了应用程序缓存,您就可以加载其他文件,但它是来自服务器的清单文件,它决定缓存的内容和不缓存的内容。
我编写了一个小库,可以从页面复制任何脚本和图像并将其保存到 localstoage。您仍然需要启用应用缓存,但它可以让您动态选择离线保存的内容。本地存储有 5 MB 的限制,因此如果您有要保存的图像,这并不多。(https://github.com/puppybits/Offline.js)
<html manifest="appcache.manifest">
<body>
...
</body>
<script type="application/javascript" src="offline.js">
<script>
var offline = new Offline(); // options: {document: myDocFragment, useThreads: false}
if (navigator.onLine)
{
offline.prime()
}
else
{
offline.activate()
}
</script>
</html>