HTML5本地存储与SessionStorage实战教程

需积分: 10 5 下载量 189 浏览量 更新于2024-07-30 收藏 1.44MB PDF 举报
"HTML5教程八主要讲解了HTML5中的本地存储功能,包括localStorage和sessionStorage的使用,以及与cookies的对比。通过实例展示了如何在用户端存储和检索数据。" 在HTML5中,本地存储功能得到了显著增强,开发者可以利用localStorage和sessionStorage在用户浏览器中保存数据,而无需依赖传统的cookies。这两种存储方式都是基于键值对(key-value pairs)的形式,但它们在用途和生存期上有区别。 localStorage提供了持久化的本地存储,数据不会因浏览器关闭而丢失。它具有5MB的大容量限制,可以用来存储大量用户数据,如游戏进度、配置设置等。例如,在`MicrosoftConfidential11`的代码段中,通过`localStorage.lastname="Smith";`将字符串"Smith"存储到键为"lastname"的localStorage中,并通过`document.write(localStorage.lastname);`将其写入页面。 sessionStorage则主要用于临时存储会话期间的数据,当浏览器窗口关闭时,这些数据会被清除。它的应用场景通常包括购物车、表单暂存等。在提供的代码示例中,`window.onload`事件触发时,当前日期被存储到sessionStorage的"currenttime"键下,同时写入cookie以便后续比较。`updateHTML`函数用于更新页面上显示的当前时间,从sessionStorage获取"currenttime"并显示在ID为"currenttime"的元素中,同时也从cookie中获取并显示。 在处理localStorage和sessionStorage时,有以下常见的属性和方法: - length:返回存储对象中键的数量,只读属性。 - key(n):返回存储对象中索引n对应的键。 - getItem(key):根据键获取对应的值。 - setItem(key, data):设置键值对,其中key是键,data是对应的值。 - removeItem(key):移除指定键的数据。 - clear():清空整个存储空间。 此外,为了处理复杂的数据结构,如JavaScript对象,可以使用JSON.stringify()将对象转换为字符串进行存储,然后再用JSON.parse()解析回对象。这在`MicrosoftConfidential7`和`MicrosoftConfidential8`的示例中有所体现,通过for循环遍历localStorage并显示所有存储的项。 相比于cookies,HTML5的本地存储提供了更大的存储空间和更好的性能,因为它们不随每个HTTP请求发送。然而,需要注意的是,localStorage和sessionStorage的数据仅限于同源策略,即只能在创建它们的源中访问,而cookies不受此限制。在设计Web应用时,根据需求选择合适的存储方式至关重要。