整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML5的离线存储有哪些?

TML5提供了一些离线存储的功能,用于在离线状态下缓存应用程序的资源和数据。
以下是HTML5中常用的离线存储技术:

1:Application Cache(应用程序缓存):

Application Cache允许你定义一个缓存清单文件(Manifest),列出需要在离线状态下缓存的文件。浏览器会根据清单文件缓存这些文件,使得应用程序可以在离线状态下继续访问。Application Cache已被废弃,推荐使用Service Worker替代。

2:Service Worker(服务工作器):

Service Worker是一种在浏览器后台运行的脚本,可以拦截和处理网络请求。它可以用于缓存应用程序的资源,包括HTML文件、CSS、JavaScript、图像等。通过使用Service Worker,应用程序可以在离线状态下加载缓存的资源,提供离线访问的能力。

3:IndexedDB(索引数据库):

IndexedDB是一种客户端数据库,可以在浏览器中存储大量结构化数据。它提供了一个异步的API,用于存储和检索数据。应用程序可以使用IndexedDB在本地存储数据,以便在离线状态下访问和操作数据。

4:Web Storage(Web存储):

Web Storage包括两种机制:localStorage和sessionStorage。它们都允许应用程序在浏览器中存储数据。localStorage用于持久保存数据,即使浏览器关闭后也会保留数据;sessionStorage用于临时保存数据,当会话结束或浏览器关闭后数据将被清除。

HTML5以前我们会使用 cookie,在浏览器端缓存一些数据,例如:登录用户信息,历史搜索信息等等。但是cookie所支持的容量仅仅只有 4k ,也没有专门的api来操作,只能依赖一些开源的库, 这里使用 cookies.js 存储和获取cookie信息

// 这是一个cookie值Cookies.set('key', 'value');// 链式调用Cookies.set('key', 'value').set('hello', 'world');// 可以额外设置一些参数Cookies.set('key', 'value', { domain: 'www.example.com', secure: true });// 设置缓存时间Cookies.set('key', 'value', { expires: 600 }); // Expires in 10 minutesCookies.set('key', 'value', { expires: '01/01/2012' });

由此可见用cookie存储有一下几个缺点:

存储数据的量比较小

本身没有方便的api对其进行操作

cookie信息会在http请求时加入到请求头中,既不安全也增加了带宽。

WEB Storage

HTML5 提拱更好的本地存储规范 localStorage 和 sessionStorage , 它们将数据存储在本地,而且在http请求时不会携带 Storage 里的信息, 使用方式也很简单:

localStorage.setItem('key', 'value');

除此之外,

canvas 是 HTML5 提供的一个用于展示绘图效果的标签. canvas 原意画布, 帆布. 在 HTML 页面中用于展示绘图效果. 最早 canvas 是苹果提出的一个方案, 今天已经在大多数浏览器中实现.

canvas 英 ['kænvəs] 美 ['kænvəs] 帆布 画布

canvas 的基本用法

基本语法

<canvas></canvas>

1. 使用 canvas 标签, 即可在页面中开辟一格区域. 可以设置其 width 和 height 设置该区域的尺寸.

2. 默认 canvas 的宽高为 300 和 150.

3. 不要使用 CSS 的方式设置宽高, 应该使用 HTML 属性.

4. 如果浏览器不支持 canvas 标签, 那么就会将其解释为 div 标签. 因此常常在 canvas 中嵌入文本, 以提示用户浏览器的能力.

5. canvas 的兼容性非常强, 只要支持该标签的, 基本功能都一样, 因此不用考虑兼容性问题.

6. canvas 本身不能绘图. 是使用 JavaScript 来完成绘图. canvas 对象提供了各种绘图用的api.

灵活处理图片标题

<figcaption> 标签表示与 <figure> 元素关联的标题或图例,通常作为例如图片、图表、插图等视觉元素的容器。在早期的 HTML 版本中,<figcaption> 只能用作第一个或最后一个 <figure> 的子标签。HTML5.1 已放宽此限制,现在您可以在 <figure> 容器中的任何位置使用 <figcaption>。

<article>

<h1>The Headline of todays news </h1>

<figure>

<img src="petrolimage.jpeg"alt="Petrol price drops">

<figcaption>Aman fueling up his car at petrol station</figcaption>

</figure>

<p>Thisisthe forth hike inpetrol prices intwo month andthe third incaseof diesel inone fortnight.</p>

</article>

12. 拼写检查

spellcheck 是一个取值可以为空字符串、true 和 false 的枚举属性。如果指定其状态为 true,就表示元素将会接受对其的拼写和语法检查。

element.forceSpellCheck() 将强制用户代理在文本元素上报告检查出来的拼写和语法错误,即使用户从来没将输入聚焦在该元素上。

<pspellcheck="true">

<label>Name: <input spellcheck=" false"id="textbox"></label>

</p>

.在用户没有与因特网连接时,可以正常访问站点或应用。

2.在用户与因特网连接时,更新用户机器上的缓存文件。

原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。

如何使用:

一、页面头部像下面一样加入一个manifest的属性;

二、在cache.manifest文件的编写离线存储的资源;

CACHE MANIFEST
#v0.11

CACHE:

js/app.js
css/style.css

NETWORK:
resourse/logo.png

FALLBACK:
/ /offline.html

离线存储的manifest一般由三个部分组成:

1.CACHE:表示需要离线存储的资源列表,由于包含manifest文件的页面将被自动离线存储,所以不需要把页面自身也列出来。

2.NETWORK:表示在它下面列出来的资源只有在在线的情况下才能访问,他们不会被离线存储,所以在离线情况下无法使用这些资源。不过,如果在CACHE和NETWORK中有一个相同的资源,那么这个资源还是会被离线存储,也就是说CACHE的优先级更高。

3.FALLBACK:表示如果访问第一个资源失败,那么就使用第二个资源来替换他,比如上面这个文件表示的就是如果访问根目录下任何一个资源失败了,那么就去访问offline.html

三、在离线状态时,操作window.applicationCache进行需求实现。