html5本地存储论坛,Web Storage--HTML5本地存储

什么是Web Storage

Web Storage是HTML5里面引入的一个类似于cookie的本地存储功能,可以用于客户端的本地存储,其相对于cookie来说有以下几点优势:

存储空间大:cookie只有4KB的存储空间,而Web Storage在官方建议中为每个网站5M。

可选择性强:Web Storage分为两种:sessionStorage和localStorage

Web Storage的使用方法

在使用上,session Storage和local Storage大同小异,只是session Storage是将数据临时存储在session中,浏览器关闭,数据随之消失。而local Storage则是将数据存储在本地,理论上来说数据永远不会消失,除非人为删除。

API:

保存数据 localStorage.setItem( key, value ); sessionStorage.setItem( key, value );

读取数据 localStorage.getItem( key ); sessionStorage.getItem( key );

删除单个数据localStorage.removeItem( key ); sessionStorage.removeItem( key );

删除全部数据localStorage.clear( ); sessionStorage.clear( );

获取索引的keylocalStorage.key( index ); sessionStorage.key( index );

注意:Web Storage的API只能操作字符串

在使用Web Storage之前,我们需要注意以下几点:

仅支持支持IE8及以上版本

由于只能对字符串类型数据进行操作,所以对一些JSON对象需要进行转换

因为是明文存储,所以毫无隐私性可言,绝对不能用于存储重要信息

会是浏览器加载速度在一定程度上变慢

无法被爬虫程序爬取

使用Web Storage之前,请加上以下代码,对浏览器对Web Storage的支持性进行判断

if(window.localStorage){//或者window.sessionStorage

alert("浏览器支持localStorage")

//主逻辑业务

}else{

alert("浏览不支持localStorage")

//替代方法

}

我们来写一个学生管理小程序用于演示Web Storage的基本用法

简单的html页面先准备好

学生姓名:

性别:

学号:

家庭住址:

电话号码:



输入姓名:


输入姓名:


在这个程序里面我们将实现增删查的基本功能,修改数据的功能相信大家看完后自己就能写出来。

接下来开始写方法:

存储

//利用localStorage存储数据

function save() {

var contact = new Object();

var Name = document.getElementById("name").value;

var Sex = document.getElementById("sex").value;

var Num = document.getElementById("num").value;

var Add = document.getElementById("add").value;

var Tel = document.getElementById("tel").value;

if(JTrim(Name) != "" && JTrim(Sex) != "" && JTrim(Num) != "" && JTrim(Add) != "" && JTrim(Tel) != "") {

contact.name = Name;

contact.sex = Sex;

contact.num = Num;

contact.add = Add;

contact.tel = Tel;

var str = JSON.stringify(contact);//对JSON对象进行处理,用于从一个对象解析出字符串

if(window.localStorage) {

localStorage.setItem(contact.name,str);

} else {

alert("您暂时还无法使用本功能");

return;

}

} else {

alert("请输入内容");

}

}

其中用到了Trim()这个方法,用于判断输入是否为空

function JTrim(s) {

return s.replace(/(^\s*)|(\s*$)/g, "");

}

展示所有信息

function loadAll() {

var resource = document.getElementById("list");

if(window.localStorage) {

var result = "

result += "

姓名性别学号家庭住址电话号码";

for(var i = 0;i < localStorage.length; i++) {

var Name = localStorage.key(i);//用于得到索引的key,在这个程序里,key为name

var str = localStorage.getItem(Name);

var contact = JSON.parse(str);//对JSON对象进行处理,用于从一个字符串中解析出JSON对象

result += "

"+contact.name+""+contact.sex+""+contact.num+""+contact.add+""+contact.tel+"";

}

result += "

";

resource.innerHTML = result;

} else {

alert("您暂时还无法使用本功能");

return;

}

}

查询

function search() {

var resource = document.getElementById("tato");

var search_name = document.getElementById("search_name").value;

if(window.localStorage) {

var str = localStorage.getItem(search_name);

if(str != null) {

var result = "

result += "

姓名性别学号家庭住址电话号码";

var contact = JSON.parse(str);

result += "

"+contact.name+""+contact.sex+""+contact.num+""+contact.add+""+contact.tel+"";

result += "

";

resource.innerHTML = result;

} else {

alert("系统无此人");

return;

}

} else {

alert("您暂时还无法使用本功能");

return;

}

}

删除

function del() {

var del_name = document.getElementById("del_name").value;

if(window.localStorage) {

var result = localStorage.getItem(del_name);

localStorage.removeItem(del_name);

if(result != null) {

alert("删除成功");

} else {

alert("系统无此人");

return;

}

} else {

alert("您暂时还无法使用本功能");

return;

}

}

在这里如果想对所有数据做删除处理则只需将localStorage.removeItem();换成localStorage.clear();即可

现在让我们在浏览器的开发者工具里面看一看Web Storage到底是怎么存储的

bVHqhY?w=535&h=451

我们可以在chrome开发者工具里面找到Application这个选项,其中就有今天的主角:Local Storage和Session Storage

现在输入一些数据

bVHqja?w=394&h=323

点击提交之后我们立刻就能在Local Storage里面看到明文存储的数据(后面的value是以JSON对象来存储的,所以在对其进行操作的时候需要转换格式)

bVHqjl?w=855&h=365

总结

Web Storage固然简单实用,但是数据的明文存储实在是硬伤,所以各位使用之前请三思

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机操作系统(5):操作系统的结构设计

1.5 操作系统的结构设计 OS的结构经历了四代变革&#xff1a; 微内核OS结构——现代OS结构 微内核结构能有效地支持多处理机运行&#xff0c;故非常使用于分布式系统环境。 Windows NT采用微内核结构 在与微内核技术发展的同时&#xff0c;客户/服务器技术、面向对象技术…

Linux软链接和硬链接

Linux软链接和硬链接 1. 软链接link 定义&#xff1a;就是windows系统的快捷方式 作用&#xff1a;可以对硬盘空间进行合理分配 具体设置&#xff1a; ln -s 源文件 软链接 1.1 软链接使用注意 ① 设置软链接&#xff0c;如果软链接和源文件不在同一级目录&#xff0c;原…

项目管理(3):备战pmp

1组织结构与项目管理 2职能型组织的优缺点 优点 简单对专家更易于管理&#xff0c;管理更具灵活性只向一个上司汇报项目人员有“家”——他们在部门里工作&#xff0c;部门给予相应的技术支持员工可以不断得到提高缺点 项目经理没有足够的权力没有明确的责任人客户可能找不到专…

【leetcode】16 3Sum Closest

描述 给定一个数字集合 S 以及一个数字 target&#xff0c;需要从集合中找出3个数字的和与这个 target的值最接近&#xff08;绝对值最小&#xff09; 样例 Input: S [-1, 2, 1, -4], target 1Output: 2 思路 首先排序&#xff0c;之后确定一个数字的前提下&#xff0c;再利用…

项目管理(4):备战pmp

1单个项目管理过程 如何实现项目管理&#xff1f; 通过“过程”processes实现 大多数情况下&#xff0c;大多数项目都有共同的项目管理过程 项目管理知识提供的是good practice 应用这些过程能大大提高项目成功的机会 项目经理与项目团队的责任 确定哪些过程适用于具体给…

项目管理(6):备战pmp

项目整体管理 定义&#xff1a; 识别、定义、结合、统一与协调项目管理过程组中的各个过程以及项目管理活动 在各个相互冲突的目标与方案之间权衡取舍 在项目管理中发挥明显的重要作用 Eg&#xff1a;应急计划的成本估算成本管理时间管理风险管理 基本任务&#xff1a; …

项目管理(7):备战pmp

1.2制定项目初步范围说明书 项目范围说明书&#xff08;初步&#xff09; 目的&#xff1a; 登记项目及其产品和服务的特征与边界&#xff0c;以及验收与范围控制的方法 内容&#xff1a; 项目与产品的目标 产品或服务的要求与特性 产品验收标准 项目边界 项目要求与可…

旅馆客未满 计算机术语,前厅测试题

《前厅服务》单元测试一一、单项选择题(每题1分&#xff0c;共50分)1、按照人类生产、生活、社会实践活动领域的不同&#xff0c;道德可划分为三个组成部分&#xff0c;其中不包括()。A、职业道德B、家庭美德C、社会良知D、社会公德2、职业道德是人们在长期的职业活动中形成的(…

计算机操作系统(7):进程的基本概念

2.1 进程的基本概念 程序的顺序执行及其特征程序的并发执行及其特征进程的特征与状态进程控制块 2.1.1 程序的顺序执行及其特征 顺序执行包含两层含义&#xff1a; 在单道批处理系统中&#xff0c;对于多个用户程序来说&#xff0c;所有程序是依次执行的。(外部顺序性) 对…

无法打开计算机上的event log服务,Win7系统下启用Windows event log服务发生4201错误的正确解决方法...

Windows event log服务会把程序与系统发送的错误消息记录在日志中&#xff0c;其中还包含了部分有用的诊断信息&#xff0c;近期有Win7用户在启用windows event log服务的时候&#xff0c;发生4201错误提示框。那么该如何解决该问题&#xff1f;下面装机之家分享一下Win7系统下…

广义线性模型的计算机应用技术学院,SPSS数据分析—广义线性模型

我们前面介绍的一般线性模型、Logistic回归模型、对数线性模型、Poisson回归模型等&#xff0c;实际上均属于广义线性模型的范畴&#xff0c;广义线性模型包含的范围非常广泛&#xff0c;原因在于其对于因变量、因变量的概率分布等条件的限制放宽&#xff0c;使其应用范围加大。…

中国第一个计算机病毒什么时候,新中国成立以来的第一例电脑病毒小球病毒是在1988年发现...

扩展阅读&#xff1a;1988年&#xff0c;随着软件交流&#xff0c;石头和小球病毒跟随软盘悄悄地通过香港和美国进入了中国内地&#xff0c;并在人们的懵懂之间在大型企业和研究所间广为传播。小球病毒是国内发现的第一个计算机病毒。发作条件是当系统时钟处于半点或整点&#…

计算机操作系统(8):进程的控制

2.2 进程控制 进程控制是进程管理中最基本的功能。 进程控制包括&#xff1a; ◆ 创建进程 ◆ 终止进程 ◆ 进程状态转换 进程控制是由OS的内核完成的。 2.2.1 进程的创建 2&#xff0e;进程的创建 调用进程创建原语Create&#xff08;&#xff09;&#xff0c;按下述…

计算机操作系统(9):深入理解B/S与C/S架构

深入理解B/S与C/S架构 阅读目录 C/S架构简要介绍 什么是B/S架构 B/S架构的几种形式 发展前景 一、C/S架构简要介绍 在了解什么是B/S架构之前&#xff0c;我们有必要了解一下什么是C/S架构&#xff1a; C/S架构是第一种比较早的软件架构&#xff0c;主要用于局域网内。也叫…

硬件设计--DC/DC电源芯片详解

本文参考&#xff1a;http://www.elecfans.com/article/83/116/2018/20180207631874.html https://blog.csdn.net/wangdapao12138/article/details/79763343 第一次写博客&#xff0c;不喜勿喷&#xff0c;谢谢&#xff01;&#xff01;&#xff01; DC/DC电源指直流转换为直流…

Unity预计算全局实时GI(gi params)

Unity提供许多进阶的光照贴图控制方法&#xff0c;这些设定被放在一个光照参数集(LightmapParameters)的资源里&#xff0c;好让设定能在不同的项目场景或是透过版本控制和团队一起共享。 要建立一个Lightmap Parameters资源&#xff0c;先找到Project窗口从Create下拉选单建立…

计算机操作系统(11):负载均衡

负载均衡是高可用网络基础架构的的一个关键组成部分&#xff0c;有了负载均衡&#xff0c;我们通常可以将我们的应用服务器部署多台&#xff0c;然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站、应用、数据库或其他服务的性能以及可靠性。 为什么要引入负载均衡…

计算机配置对电子竞技的影响,配置高并不是唯一优点 看看电竞硬件还要啥?...

01宁美国度星河 战列舰XS现在有很多游戏品牌依靠品牌的力量为自己背书&#xff0c;以至于很多游戏玩家很难找的合适自己的高性能电脑&#xff0c;电竞体验也就无从谈起&#xff0c;但是今年的新品里还是有一些意外之喜&#xff0c;在整机性能上表现不俗。比如电脑发烧友们向来有…

计算机硬盘与格式化,什么是磁盘格式化 格式化与快速格式化区别 - 驱动管家...

电脑磁盘格式化&#xff0c;对于电脑爱好者肯定很好理解&#xff0c;但对于一些新手&#xff0c;可能不太理解。格式化是什么?简单的说&#xff0c;格式化就是把一张空白的盘划分成一个个小的区域&#xff0c;并编号&#xff0c;供计算机储存&#xff0c;读取数据。接下来对磁…

玩转oracle 11g(11):开启归档模式

如果归档模式已经开启并设置归档路径&#xff0c;请跳过 1. 开始-》运行-》cmd 2. 输入&#xff1a;sqlplus sys/密码 as sysdba 3. Sql> archive log list ; 如下图所示&#xff1a; Rman 在线备份 如果“数据库日志模式”为“非存档模式” 按照如下开启归档…