热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎样使用WebStorage存储-

这次给大家带来怎样使用WebStorage存储,使用WebStorage存储的注意事项有哪些,下面就是实战案例,一起来看一下。
这次给大家带来怎样使用Web Storage存储,使用Web Storage存储的注意事项有哪些,下面就是实战案例,一起来看一下。

localStorage-------sessionStorage

Web Storage特点:

1、Key--Value型的简单存储形式

2、可以和其他普通的Javascript对象相同的形式来进行读写操作

3、容量大-->5M(和COOKIE相比)--(COOKIE只有4KB、且发送请求时会一起带上,影响速度)

4、只能在同源的情况下才能被访问

以下用localStorage进行举例----》sessionStorage和localStorage基本相同,但是sessionStorage是基于会话的,随着窗口的关闭而消失。但是localStorage是存储在本地的数据,除了通过程序删除或者手动删除,数据是不会丢失的。

类似与普通的Javascript对象,可以采用点(.)操作和[ ]中括号操作来访问属性。

如:localStorage.setItem(" foo","1") \ localStorage.foo="1" \ localStorage["foo"]="1"

常用的api:setItem()、getItem()、clear()。

在对象进行存储的时候,在读写的时候,需要将对象转成JSON字符串进行存储,引入2个函数JSON.stringify(obj)、JSON.parse(str)

如:var obj={x:1,y:2} 存储:localStorage.obj=JSON.stringify(obj)、读取:var obj2=localStorage.parse(localStorage.obj)。

数据的枚举:1、通过key方法和length属性遍历 2、for in 遍历

1:for (var i=0;i

2:for (var key in localStorage){ if(localStorage.hasOwnProperty(key)){var value=localStorage[key] ; console.log(key+":"+value);} }

storage事件

在某个窗口更改了web Storage的数据之后,那么就在除了更改数据的窗口之外的所以窗口触发storage事件。

window.addEventListener('storage',function(event){ console.log(event.key) }.false);

下面列举几个常用的event事件对象的属性。

key(被更新的键名)、oldValue(更新前的值)、newValue(更新之后的值)、url(被更新的页面的url)

命名空间的管理----由于localStorage的数据不对自动消失,如果胡乱的添加过多的属性,就会导致后续的管理变得十分困难。我们可以通过命名空间来进行管理。

	var serviceName="SERVICENAME",storage=null;
	//通过load事件读取数据至本地变量
	window.Onload=function(){
		try{
			storage=JSON.parse(localStorage[serviceName] || '{}');
		}catch{
			storage={};
		}
	}
	//通过onbeforeunload时间将数据写入localStorage
	window.Onbeforeunload=function(){
		localStorage[serviceName]=JSON.stringify(storage)
	}

1、将localStorage的数据写到本地变量storage中,那么对其的访问速度会比访问localStroage的速度块。

2、不同页面或者不同模块分别以不同的serviceName命名,进而避免属性名冲突

3、由于一次页面只对localStorage读写了一次,所以在页面中无法触发storage事件。所以在必要时,我们必要时需要封装方法来对localStorage数据进行更新,或者同步其他标签页的数据。

相信看了本文案例你已经掌握了方法,更多精彩请关注 第一PHP社区 其它相关文章!

推荐阅读:

如何使用源生css3实现圆环加载进度条

如何访问JS的对象属性与方法

以上就是怎样使用Web Storage存储的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 本文探讨了线性表中元素的删除方法,包括顺序表和链表的不同实现策略,以及这些策略在实际应用中的性能分析。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本文提供了一个关于AC自动机(Aho-Corasick Algorithm)的详细解析与实现方法,特别针对P3796题目进行了深入探讨。文章不仅涵盖了AC自动机的基本概念,还重点讲解了如何通过构建失败指针(fail pointer)来提高字符串匹配效率。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • Vue CLI 基础入门指南
    本文详细介绍了 Vue CLI 的基础使用方法,包括环境搭建、项目创建、常见配置及路由管理等内容,适合初学者快速掌握 Vue 开发环境。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
author-avatar
情歌怎厸唱狂想曲
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有