0

0

HTML5客户端数据存储Web Storage—localStorage与sessionStorage

黄舟

黄舟

发布时间:2017-02-27 15:25:40

|

2087人浏览过

|

来源于php中文网

原创


html5提供了在客户端存储数据的新方法web storage
类似于html4中的cookie
不过它要强大的多

Cookie

先来简单复习一下之前使用的cookie

cookie存储数据到用户设备上,存储的数据量较小只有4KB
可以通过navigator.cookieEnabled检测是否开启了cookie

  • 设置cookie document.cookie = 'key=value';

    立即学习前端免费学习笔记(深入)”;

  • 获取cookie document.cookie;

  • 删除cookie document.cookie = "key=value;max-age=0";

  • 设置max-age存储期限 document.cookie = "key=value;max-age=1000"; // 1000秒

  • 设置expires存储期限

var timestamp = (new Date()).getTime() + 10000;var expires = new Date(timestamp).toGMTString();
//或toUTCStringdocument.cookie = "key=value;expires="+expires;
  • 获取具体cookie值

function getCookie(name) {
    var name = name + "=";    
    var ary = document.cookie.split(';');    
    for(var i = 0; i < ary.length; i++){        
    var c = ary[i];        
    while (c.charAt(0) == ' '){
          c = c.substring(1);
        }        
        if (c.indexOf(name) != -1){          
        return c.substring(name.length, c.length);
        }
    }    return "";
}

Web Storage

Web Storage又分为两种
localStorage和sessionStorage
它们的区别是:

  • localStorage存储的是永久数据,除非手动删除

  • sessionStorage存储的是临时数据,窗口关闭就会消失

简单使用

Web Storage只能存储字符串数据
我觉得可以把它们理解为JSON
使用方法都是类似的,已localStorage为例

localStorage.name = 'payen';
localStorage.info = JSON.stringify({name: 'payen', age: 20});
console.log(localStorage.name);
console.log(JSON.parse(localStorage.info));

要存储的数据名就是localStorage的属性名
普通的字符串正常存储就可以了
对象数据可以利用JSON.stringify()将其转换为字符串格式
使用的时候再用JSON.parse()转换回对象格式
(如果直接存储对象的话,它会被强制转换为字符串 “[object Object]”)


删除数据直接delete就好

delete localStorage.name;delete localStorage.info;

如果不删除的话,localStorage里面的数据就会一直存在于你的浏览器了

英特尔AI工具
英特尔AI工具

英特尔AI与机器学习解决方案

下载

API

localStorage和sessionStorage还提供了简单的API
类似于一个客户端的数据库
(API都是相同的)
常用的有以下几个:

  • 保存数据 setItem(key,value)

  • 读取数据 getItem(key)

  • 删除单个数据 removeItem(key)

  • 清空全部数据 clearItem()

  • 获取数据索引 key(index)

实例

通过这个,我们可以写个简易的通讯录











#container {    
border: 2px solid gray;    
width: 320px;    
text-align:center;}

通讯录-1

JavaScript中就是实现这两个函数

var user = document.getElementById('username'),
    phone = document.getElementById('mobilephone'),
    search = document.getElementById('search'),
    result = document.getElementById('result');var add = function(){
    var u = user.value,
        p = phone.value,
        l = localStorage.length;    if(u !== '' && p !== ''){
        localStorage.setItem(u, p);
        user.value = '';
        phone.value = '';
        alert('添加成功');
    }
};var find = function(){
    var s = search.value,
        r = localStorage.getItem(s);    if(s !== '' && r){
        result.innerHTML = r;
    }
};

通讯录-2

输入姓名和手机添加联系人
然后在下面输入联系人姓名我们可以查找到手机号

通讯录-3


当然这个通讯录十分简易了
也可以为它添加显示通讯录全部信息
删除联系人功能等等

cookie与Web Storage区别

最后说说Html5的Web Storage和Html4的cookie的区别

特点 Cookie Web Storage
生命周期 一般由服务器生成并设置时间;浏览器生成默认关闭浏览器失效 local:不清除则永久保存;session:关闭页面或浏览器失效
数据大小 4KB 官方推荐5MB
通信 携带在HTTP头中(过多使用有性能问题) 仅在浏览器存储,不参与通信
使用 原生接口不友好,需要手动封装 原生接口友好

 以上就是HTML5客户端数据存储Web Storage—localStorage与sessionStorage的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.8万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 9.9万人学习

前端开发(基础+实战项目合集)
前端开发(基础+实战项目合集)

共60课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号