sessionStorage详细使用方法

本文深入解析HTML5的sessionStorage,一种用于临时保存同一窗口数据的存储对象。探讨了其特点、浏览器支持情况、适用场景及存储、读取方法,适合SPA应用开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 说明

sessionStorage 是HTML5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

在JavaScript语言中可通过 window.sessionStorage 或 sessionStorage 调用此对象。

1.2 特点

1) 同源策略限制。若想在不同页面之间对同一个sessionStorage进行操作,这些页面必须在同一协议、同一主机名和同一端口下。(IE 8和9存储数据仅基于同一主机名,忽略协议(HTTP和HTTPS)和端口号的要求)

2) 单标签页限制。sessionStorage操作限制在单个标签页中,在此标签页进行同源页面访问都可以共享sessionStorage数据。

3) 只在本地存储。seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除数据。(若使用Chrome的恢复标签页功能,seesionStorage的数据也会恢复)。

4) 存储方式。seesionStorage的存储方式采用key、value的方式。value的值必须为字符串类型(传入非字符串,也会在存储时转换为字符串。true值会转换为"true")。

5) 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下

可访问 http://dev-test.nemikor.com/web-storage/support-test/ 测试浏览器的存储上限。

1.3 浏览器最小版本支持

支持sessionStorage的浏览器最小版本:IE8、Chrome 5。

1.4 适合场景 

sessionStorage 非常适合SPA(单页应用程序),可以方便在各业务模块进行传值。

2.1 属性

 readonly int sessionStorage.length :返回一个整数,表示存储在 sessionStorage 对象中的数据项(键值对)数量。

2.2 方法

方法 string sessionStorage.key(int index) :返回当前 sessionStorage 对象的第index序号的key名称。若没有返回null。

方法 string sessionStorage.getItem(string key) :返回键名(key)对应的值(value)。若没有返回null。

方法 void sessionStorage.setItem(string key, string value) :该方法接受一个键名(key)和值(value)作为参数,将键值对添加到存储中;如果键名存在,则更新其对应的值。

方法 void sessionStorage.removeItem(string key) :将指定的键名(key)从 sessionStorage 对象中移除。

方法 void sessionStorage.clear() :清除 sessionStorage 对象所有的项。

3.1 存储数据

3.1.1 采用setItem()方法存储

1

sessionStorage.setItem('testKey','这是一个测试的value值'); // 存入一个值

3.1.2 通过属性方式存储  

1

sessionStorage['testKey'] = '这是一个测试的value值';

 

3.2.1 通过getItem()方法取值

1

sessionStorage.getItem('testKey'); // => 返回testKey对应的值

3.2.2 通过属性方式取值

1

sessionStorage['testKey']; // => 这是一个测试的value值

 

3.3 存储Json对象

sessionStorage也可存储Json对象:存储时,通过JSON.stringify()将对象转换为文本格式;读取时,通过JSON.parse()将文本转换回对象。

1

2

3

4

5

6

7

8

9

10

11

12

var userEntity = {

    name: 'tom',

    age: 22

};

 

// 存储值:将对象转换为Json字符串

sessionStorage.setItem('user', JSON.stringify(userEntity));

 

// 取值时:把获取到的Json字符串转换回对象

var userJsonStr = sessionStorage.getItem('user');

userEntity = JSON.parse(userJsonStr);

console.log(userEntity.name); // => tom

 

sessionStorage是HTML5中提供的一种客户端存储数据的方法,数据只能在同一个浏览器窗口中共享。在备忘录页面中使用sessionStorage可以方便地存储用户输入的备忘内容,从而实现数据的持久化。以下是一个简单的备忘录页面的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>备忘录</title> <style> label { display: block; margin-bottom: 10px; } input[type="text"] { width: 100%; padding: 10px; margin-bottom: 20px; } textarea { width: 100%; height: 300px; padding: 10px; } </style> </head> <body> <h1>备忘录</h1> <label> 标题:<br> <input type="text" id="title"> </label> <label> 内容:<br> <textarea id="content"></textarea> </label> <button onclick="save()">保存</button> <button onclick="clearAll()">清空</button> <ul id="memoList"></ul> <script> // 加载已保存的备忘录 for (var i = 0; i < sessionStorage.length; i++) { var key = sessionStorage.key(i); if (key.indexOf("memo_") === 0) { var memo = JSON.parse(sessionStorage.getItem(key)); addMemoToList(memo); } } // 保存备忘录 function save() { var title = document.getElementById("title").value; var content = document.getElementById("content").value; if (title.trim() === "") { alert("请输入标题"); return; } if (content.trim() === "") { alert("请输入内容"); return; } var id = "memo_" + new Date().getTime(); // 使用时间戳作为ID var memo = {id: id, title: title, content: content}; sessionStorage.setItem(id, JSON.stringify(memo)); addMemoToList(memo); document.getElementById("title").value = ""; document.getElementById("content").value = ""; } // 清空所有备忘录 function clearAll() { sessionStorage.clear(); document.getElementById("memoList").innerHTML = ""; } // 将备忘录添加到列表中 function addMemoToList(memo) { var li = document.createElement("li"); var a = document.createElement("a"); a.href = "#"; a.innerHTML = memo.title; a.onclick = function() { showMemo(memo); return false; }; li.appendChild(a); document.getElementById("memoList").appendChild(li); } // 显示备忘录详细内容 function showMemo(memo) { document.getElementById("title").value = memo.title; document.getElementById("content").value = memo.content; } </script> </body> </html> ``` 以上代码实现了一个简单的备忘录页面,用户输入标题和内容后,点击保存按钮可以将备忘录保存到sessionStorage中。同时,已保存的备忘录会显示在列表中,点击列表中的备忘录标题可以查看详细内容。清空按钮可以清空所有备忘录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值