大多数浏览器都支持offline app。 我从WHATWG复制了示例应用并将其放在网络服务器上,但是当我按照以下步骤进行测试时,它无法正常工作:
Cannot find server or DNS error
我没有在私人模式下浏览,也没有清除任何浏览器缓存。我还不知道这是否特定于Windows手机,但稍后会测试其他设备。
clock.appcache
CACHE MANIFEST
CACHE:
clock.html
clock.css
clock.js
clock.html
<!DOCTYPE html>
<html manifest="clock.appcache">
<head>
<title>Clock</title>
<script src="clock.js"></script>
<link rel="stylesheet" href="clock.css">
</head>
<body onload="updateIndicator()" ononline="updateIndicator()" onoffline="updateIndicator()">
<div>The network is: <span id="indicator">(state unknown)</span></div>
<div>The time is: <span id="clock"></span></div>
</body>
</html>
clock.css
.clock { font: 2em sans-serif; }
clock.js
setInterval(function () {
document.getElementById('clock').innerHTML = new Date();
}, 1000);
function updateIndicator() {
document.getElementById('indicator').innerHTML = navigator.onLine ? 'online' : 'offline';
}
答案 0 :(得分:2)
我已经构建了一个使用此技术的离线应用程序,并且在每个浏览器中运行良好,但是我在Windows Phone 8.1上也遇到了与IE11相同的问题。我在这里写到了这个问题:http://forums.wpcentral.com/windows-phone-8-1-preview-developers/274574-91.htm#post2585711
似乎如果您加载页面,进入飞行模式,然后点击刷新,您会收到提到的DNS错误(当您希望浏览器从缓存加载页面时)。
我找到了一个解决方法 - 加载页面,为其添加书签(如果需要,可以固定到主页),退出浏览器,进入飞行模式,然后重新打开浏览器并仅使用您的书签加载页面。它应该加载网站确定。只是不要点击刷新 - 这似乎是杀死它的刷新功能。
答案 1 :(得分:1)
clock.appcache需要使用正确的mime类型text/cache-manifest
。大多数服务器默认不这样做。您需要使用正确的设置修改web.config或.htaccess。