HTML5本地存储VS应用缓存离线网站浏览
HTML5 Local Storage VS App Cache Offline Website Browsing
通读多篇文章后,我仍然不清楚本地存储和应用程序缓存清单之间的区别。
也提到:是AppCache =应用缓存= Web存储的LocalStorage?(SO 10986026),应用程序缓存是一个混蛋(一个列表之外)
我的目标是建立一个网站,有特定的页面可以根据用户的需求离线给用户。
后续步骤:
-
我在Chrome上打开了一个网站:http://www.spritecow.com/
检查AppCache: chrome://AppCache -internals/ -
我关闭Chrome并重新加载它。宝藏还在那里。正是我需要的离线浏览
-
这和本地存储有什么不同?试图找到差异,但所有的网站回答的目的,即AppCache模板的缓存和本地存储的内容在模板内。
-
某些站点不喜欢AppCache,因为它会为一行更改重新加载整个缓存。某些站点只喜欢本地存储。而有些人则选择AppCache(模板)和Localstorage的组合。
现在的疑问是:
-
客户端机器上的本地存储。如果我仍然可以访问AppCache存储是如何不同的,即使浏览器关闭。
-
由于清除缓存会清除AppCache,所以我只会选择本地存储
-
离线浏览的最佳实践是什么?我对此完全陌生,需要对相同的
进行一点澄清。
编辑
这个疑问没有被链接回答(AppCache = Application Cache = Web Storage's LocalStorage?),因为这给出了差异,但不是基于离线浏览实践的目的(这是这个疑问的目的)。
AppCache使用manifest文件来定义应用程序使用的文件应该被存储(您可以缓存文件和资源,如HTML页面,JS脚本,CSS样式,图像,…)
LocalStorage将存储数据但不存储页面。因此,你可以字符串化的每个javascript对象都可以存储在localStorage中。
所以AppCache和localStorage不一样,但它们是互补的。
示例想象一个你想要离线使用的web日历(注意:对于这个例子,我们在这里使用一个静态页面,数据是用javascript加载的)。动态页面也可以这样做,但本例使用的是静态页面。
appache将存储html页面和它使用的资源(javascripts, css, images)来呈现你的页面。当您在清单文件中放入要为下一次离线访问缓存的所有内容时,页面将被存储,并且您将能够在下次访问时离线显示您的页面。
但是问题,您的日历显示为空。这个月的所有会议和活动都不在那里。这是因为您的页面是存储的,但您仍然需要网络将会议加载到日历中。当你离线时,你没有网络…
如果你想让你所有的会议可用离线太,你必须将它们存储在本地存储(不是在appCache,因为它不是一个页面,它的数据访问JavaScript)。所以你需要改变你的Javascript函数:
function initApp() {
var data = loadDataWithAjax();
renderPlanning(data);
}
function initApp () {
var data;
if(offline) {
data = loadFromLocalStorage();
} else {
data = loadDataWithAjax();
storeDataInLocalStorage(data);
}
renderPlanning(data);
}
Appcache甚至可以工作,如果你是完全脱机,你的浏览器是关闭的,然后你打开你的浏览器,输入URL,而仍然脱机-页面加载!查看一下这个网站,在线时加载一次,然后断开网络连接并关闭浏览器,然后重新打开浏览器并尝试在离线时访问它。
localStorage需要首先连接来加载从它获取数据所需的js代码。
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 回调函数在python代码中离线
- web浏览器中的离线应用程序存储数据并在之后上传
- OSM-离线查询我的IONIC/CORDOVA项目
- 任何可用作HTML5离线缓存链接的免费服务
- 缓存以使我的网站离线是't工作
- 如何缓存整个视频文件以供以后通过视频标签离线播放
- 当用户离线时使用角度 js 返回缓存响应
- Firebase 离线缓存和原始 Firebase.js源代码
- 在HTML5中缓存MP3以供离线收听
- HTML5本地存储VS应用缓存离线网站浏览
- HTML5 -如何离线工作的资源是远程的,但缓存在清单
- HTML5 LocalStorage与离线缓存结合使用时的限制;智能手机上的JS内存
- 更新HTML5离线应用程序缓存的正确方法
- Chrome在Android上缓存我的视频清单中列出,但不能离线播放
- HTML5“收藏”离线缓存
- HTML5缓存Javascript文件供在线和离线使用
- ServiceWorker -离线时缓存所有失败的post请求,在线时重新提交
- Html5离线缓存表单数据
- 在service worker的HTML文件旁边添加图片和CSS文件,用于离线缓存