【发布时间】:2017-10-16 20:55:40
【问题描述】:
我正在使用 HTML5 中的新缓存清单功能来缓存我的网络应用程序,以便它可以脱机工作。当页面使用以下 html 元素加载时,内容会自动缓存:
<html lang="en" manifest="offline.manifest">
这很好用。但是,我想让我的用户选择是否要离线缓存内容。所以,这是我的问题:
有什么方法可以触发应用程序在运行时缓存,使用 JavaScript,而不是在页面加载时自动完成。
例如,这样的事情(使用 jquery):
----------------index.html--------------
<head>
<meta charset="utf-8" />
<script src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="Main.js"></script>
</head>
<body>
<button id="cacheButton">Cache Page</button>
</body>
</html>
---------Main.js---------
$(document).ready(
function()
{
$('#cacheButton').click(onCacheButtonClick);
}
)
function onCacheButtonClick(event)
{
console.log("Setting Offline Manifest");
$('#htmlRoot').attr("manifest","offline.manifest");
}
-------------offline.manifest-------------
CACHE MANIFEST
#version .85
#root
index.html
scripts/main.js
#jquery assets
http://code.jquery.com/jquery-1.4.4.min.js
基本上,当单击按钮时,我会动态设置 html 元素的 manifest 属性。这有效(在元素被设置的意义上),但它不会导致浏览器缓存页面。
有什么建议吗?
【问题讨论】:
-
Firefox 缓存前提示(即内置您想要的功能)。不确定其他浏览器。
-
谢谢。 Safari 和 Google Chrome 似乎没有提示,至少在 Mac 和 iOS 上没有。
-
您是要以
file:///还是http://的身份执行此操作? -
我这样做是:http://
-
我希望它也能正常工作。
标签: javascript caching html offline