Storage 使用

关于web项目数据存储

    • 1. 存储种类
    • 2. localStorage/sessionStorage
      • 2.1 概念
      • 2.2 api的使用
    • 3. 学生curd测试localStorage

针对客户端存储讲 ——storage

1. 存储种类

1. 分为服务器端和客户端的存储
2. 服务器端:1. 内存存储(临时)application session request pageContext2. redis缓存,队列,16w次每秒,可持久化,可缓存3. 数据库持久化 mysql(23秒每次) mssqlserver oracle db2...
3. 客户端:1. cookie以文件的形式明文存储数据,不安全,最大存储单个数据4kb2. storage: 存储功能,相当于小型的数据库.(存储功能是在浏览器中)"永久保存": 只要不对浏览器进行清理,本地存储会永久保存数据.

2. localStorage/sessionStorage

2.1 概念

 使用HTML5可以在本地存储用户的浏览数据。早些时候,本地存储使用的是 cookie。但是Web存储需要更加的安全与快速。这些数据不会被保存在服务器,只用于用户请求网站数据情况。可以存储大量的数据,而不影响网站的性能。数据以 键/值 对存在,web网站的数据只允许该网页访问使用。只能存储String类型key:Stringvalue:Object1.本地存储器2.会话存储器(属于本地存储器)区别:localStorage 和 sessionStorage 生命周期不同localStorage永久有效sessionStorage跟会话有关实际开发中发现跟会话没有关系,当浏览器关闭之后,失效

2.2 api的使用

1、存储:localStorage.setItem(key,value)如果key存在时,更新value2、获取:localStorage.getItem(key)如果key不存在返回null3、删除:localStorage.removeItem(key)一旦删除,key对应的数据将会全部删除4、全部清除:localStorage.clear()某些时候使用removeItem逐个删除太麻烦,可以使用clear,执行的后果是会清除所有localStorage对象保存的数据5、遍历localStorage存储的key.length 数据总量,例:localStorage.length.key(index) 获取key,例:var key=localStorage.key(index);6、存储JSON格式数据JSON.stringify(data)  将一个对象转换成JSON格式的数据串,返回转换后的串JSON.parse(data) 将数据解析成对象,返回解析后的对象备注:localStorage存数的数据是不能跨浏览器共用的,一个浏览器只能读取各自浏览器的数据,储存空间5M。

3. 学生curd测试localStorage

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>学生利用localStorage curd</title><script type="text/javascript" src="../js/jquery-3.4.1.js" ></script><script>function save_stu() {if (window.Storage) {// 浏览器支持本地存储// 学生集合字符串var stuListStr = localStorage.getItem("stuList");// 学生json集合对象var stuList;// 学生为空if (!stuListStr) {stuListStr = "[]";} // 转换json对象stuList = JSON.parse(stuListStr);// 取到学生var name = $("#name").val();var age = $("#age").val();var gender = $("#gender").val();var stu = {"name":name, "age":age, "gender":gender};// 修改并 保存学生!!!var index = $("#stuId").val();if (index) {// 修改stuList[index] = stu;$("#stuId").val("");} else {// 新增到集合stuList.push(stu);						}// 转换为字符串stuList = JSON.stringify(stuList);// 保存到storagelocalStorage.setItem("stuList", stuList);// 清空文本框$("#name").val("");$("#age").val("");$("#gender").val("");// 查询query_stu();}}function query_stu() {// 清空表格$("table tr:gt(0)").remove();// console.log(!localStorage.hasOwnProperty("stuList"));if (!localStorage.hasOwnProperty("stuList"))return;// 把Storage中的数据绑定到 表格if (window.Storage) {var stuListStr = localStorage.getItem("stuList");var stuList = JSON.parse(stuListStr);for (var i = 0; i < stuList.length; i++) {var stu = stuList[i];var tr = "<tr> <td>" + i + "</td> "+	"<td>" + stu.name + "</td> " +   "<td>" + stu.age + "</td>" +   "<td>" + stu.gender + "</td> "+   "<td>" +      "<button οnclick='edit_stu(" + i + ")'>修改</button>" +      "<button οnclick='del_stu(" + i + ")'>删除</button>"+   "</td>"+ " </tr>";$("table:eq(0)").append(tr);}}}function edit_stu(index) {// stu json objectvar stu = JSON.parse(localStorage.getItem("stuList"))[index];console.log(stu);// 赋值$("#name").val(stu.name);$("#age").val(stu.age);$("#gender").val(stu.gender);	// 赋值id 隐藏$("#stuId").val(index);}function del_stu(index) {var stuListStr = localStorage.getItem("stuList");// console.log(stuListStr);var stuList = JSON.parse(stuListStr);// 从index开始删除一位stuList.splice(index, 1);// 删除本地储存..localStorage.removeItem("stuList");// 再保存..localStorage.setItem("stuList", JSON.stringify(stuList));query_stu();}</script></head><body><table><tr><td>id</td><td>name</td><td>age</td><td>gender</td><td>操作</td></tr></table><br /><input type="hidden" id="stuId" /><input type="text" id="name" /><input type="text" id="age" /><input type="text" id="gender" /><br /><input type="button" value="保存" onclick="save_stu()" /><!--<input type="button" onclick="edit_stu()" />--><input type="button" value="查询" onclick="query_stu()" /><input type="button" value="删除所有" onclick="localStorage.removeItem('stuList');" /></body>
</html>



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

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

相关文章

信息抽取--新词提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 什么是新词&#xff08;是什么&#xff09; 新词是一个相对的概念&#xff0c;每个人的标准都不一样&#xff0c;所以我们这里定义: 词典之外的词语(OOV)称作新词。 …

spring 基于xml方式配置aop

目录什么是aop模拟aop配置什么是aop 什么是aop 作用 在程序运行期间&#xff0c;在不修改源码的情况下对方法进行功能增强 优势 减少重复代码 提高开发效率 并且便于开发2.aop关键概念 模拟aop 目标接口 package com.lovely.proxy.aop;public interface TargetInterface …

word2vec相关资料

blogs&#xff1a; http://www.douban.com/note/323504583/ and http://www.zhihu.com/question/21661274 references: http://arxiv.org/pdf/1310.4546v1.pdf and http://www.fit.vutbr.cz/research/groups/speech/servite/2010/rnnlm_mikolov.pdf转载于:https://www.cnblogs…

信息抽取--关键词提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 什么是关键词&#xff08;是什么&#xff09; 大略的讲就是文章中重要的单词&#xff0c;而不限于词语的新鲜程度。 什么样的单词是重要的单词&#xff0c;恐怕这是个…

h5离线缓存

html5离线缓存1. 简介1.1 什么是离线缓存1.2 优点1.3 针对对象2. 实现方式2.1 使用3. window.applicationCache对象相关api3.1 属性3.2 事件3.3 方法1. 简介 1.1 什么是离线缓存 HTML5中引入了应用程序缓存&#xff0c;意味着Web应用可以进行数据缓存&#xff0c;并可以在没有…

3389爆破DUBrute_2.1

3389专业爆破 DUBrute_2.1.zip http://pan.baidu.com/s/1pJE0t5L转载于:https://www.cnblogs.com/lieyan/p/3859696.html

信息抽取--短语提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 短语提取 在信息抽取领域&#xff0c;另一项重要的任务就是提取中文短语&#xff0c;也即固定多字词表达串的识别。短语提取经常用于搜索引擎的自动推荐&#xff0c;文…

ACM1598并查集方法

find the most comfortable road Problem DescriptionXX星有许多城市&#xff0c;城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构&#xff09;进行交流&#xff0c;每条SARS都对行驶在上面的Flycar限制了固定的Speed&#xff0c;同时XX星人对…

h5 server send event(sse)

1. sse概述 概念&#xff1a; H5支持使用JS脚本不间断的访问服务器(推送)轮询: 页面使用js的定时器&#xff0c;定时发送请求查询最新数据 使用js将最新数据加载至页面 每发送一次数据&#xff0c;需要建立新的连接 时间间隔由客户端决定 优点&#xff1a;不需要刷新页面、实…

信息抽取--关键句提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 关键句提取 在一些场合&#xff0c;关键词或关键短语依然显得碎片化&#xff0c;不足以表达完整的主题。这时通常提取中心句子作为文章的简短摘要。 2 问题 关键句提…

Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null

最近发现系统中出现了很多 IOException: Connection reset by peer 与 ClosedChannelException: null 深入看了看代码, 做了些测试, 发现 Connection reset 会在客户端不知道 channel 被关闭的情况下, 触发了 eventloop 的 unsafe.read() 操作抛出 而 ClosedChannelException 一…

注解方式实现aop

aop注解实现spring配置文件目标接口&#xff0c;目标实现类&#xff0c;切面类 注解写法使用spring-test测试spring配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmln…

文本聚类

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 聚类(cluster analysis )指的是将给定对象的集合划分为不同子集的过程&#xff0c;目标是使得每个子集内部的元素尽量相似&#xff0c;不同子集间的元素尽量不相似。 …

sublime text3下BracketHighlighter的配置方法

st3的配置方法和st2是有区别的&#xff0c;所以网上搜索到的方法大多不能用&#xff0c;我google之后总结了一下。 一、 1、在st3中按preferences-->package settings-->Bracket highlighter-->Bracket settings-Default打开配置文件。 2、将配置文件信息全选复制一份…

利用spring注解创建bean

spring注解spring 原始注解1.1 Component注解1.2 Controller,Service,Repository同上1.3 注解方式依赖注入spring 新注解1. 用来解析配置类&#xff0c;利用配置类替代xml注解代替了xml的繁琐配置 spring 原始注解 1.1 Component注解 <!--spring 使用注解创建对象 compone…