在写js事件时,常常遇到点击一个事件,然后在若干时间以后需要知道最近一次点击的事件的结点。比如这里:

我点击树节点1,再点击tab2,然后我再来回切换tab,假如最后一次点击tab时在tab2上,这时,我希望点击另一个树节点2,但是这时传到后台没有所点tab的标记,自然不会将tab的值传到后台,就算在tab点击事件中设置了标记,在点击树节点时也会被临时销毁了,此时需要做的是点击tab时将值持久化,缓存起来,然后下次刷新的时候用,简单而言,代码就是下面的情况:

1)判断本地存储是否可用:

if(window.localStorage) {  
 // localStorge可用  
 }else {  
// localStorge不可用  
 } 
2)存储数据
[javascript] view plain copy
 print?
// 获取本地存储对象  
var localStorage =window.localStorage;  
// 存储  
localStorage.setItem("key",content);
3)取出数据
[javascript] view plain copy
 print?
var myKey =localStorage.getItem("key"); 
4)
[javascript] view plain copy
 print?
localStorage.clear();
以上是我查看博客http://blog.csdn.net/cordova/article/details/50853452中所显示的代码段,在我自己的项目中我是这样写的:

1)点击tab事件(两个tab事件)实现数据持久化

2)点击树节点时取出持久化数据并判断

3)然后进行对应的数据传值与渲染

4)销毁localStorage(注意,该事件的销毁应该放在事件外面,因为点击一次tab以后可能会多次点击树节点,如果在方法内把持久化的值销毁以后,下一次点击树节点时就会导致取到的值为空)

---------------------
作者:blueskynyl
来源:CSDN
原文:https://blog.csdn.net/qq_33358062/article/details/77100233
版权声明:本文为博主原创文章,转载请附上博文链接!

原 js实现数据持久化的更多相关文章

  1. Can JavaScript connect with MySQL? 浏览器控制台的js采集数据结果持久化存储

    浏览器控制台的js采集数据结果持久化存储 how to open a file in javascript https://developer.mozilla.org/en-US/docs/Web/A ...

  2. 用js把数据从一个页面传到另一个页面

    用js把数据从一个页面传到另一个页面的层里? 如果是传到新页面的话,你网站基于什么语言开发直接用get或者post获取,然后输出到这个层 通过url传参 如果是HTML页面的话JS传到新页面就wind ...

  3. React Native 之 数据持久化

    前言 因为 实战项目系列 涉及到数据持久化,这边就来补充一下. 如本文有错或理解偏差欢迎联系我,会尽快改正更新! 如有什么问题,也可直接通过邮箱 277511806@qq.com 联系我. demo链 ...

  4. dva框架使用mock.js模拟数据 + fetch请求数据

    what DVA? Dva是基于Redux做了一层封装,对于React的state管理,有很多方案,我选择了轻量.简单的Dva. dva 可以很方便就使用mock.js进行数据的模拟. 只需要三步,即 ...

  5. Android开发学习之路--数据持久化之初体验

    上班第一天,虽然工作上处于酱油模式,但是学习上依旧不能拉下,接着学习android开发吧,这里学习数据持久化的 知识. 其实数据持久化就是数据可以保存起来,一般我们保存数据都是以文件,或者数据库的形式 ...

  6. Flutter数据持久化入门以及与Web开发的对比

    对于大部分安卓或者IOS开发人员来说,App的数据持久化可能是很平常的一个话题.但是对于Web开发人员来说,可能紧紧意味着localStorage和sessionStorage. Web开发 loca ...

  7. redis的数据持久化策略

    redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照,它可以将存在于某一时刻的所有数据都写入硬盘里面.另一种方法叫只追加文件(AOF),它会在执行写命令时,将被执行的写命令复制到 ...

  8. Redis数据持久化

    持久化选项 Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里面.另一种方法叫只追加文件(append ...

  9. 170320、使用快照和AOF将Redis数据持久化到硬盘中

    前言 我们知道Redis是一款内存服务器,就算我们对自己的服务器足够的信任,不会出现任何软件或者硬件的故障,但也会有可能出现突然断电等情况,造成Redis服务器中的数据失效.因此,我们需要向传统的关系 ...

随机推荐

  1. Linux下使用ntpdate进行时间同步

    转摘自Linux下使用ntpdate进行时间同步https://www.cnblogs.com/zhi-leaf/p/6281549.html1.安装ntpdate,执行以下命令 # yum inst ...

  2. 批量数据复制SqlBulkCopy使用经验点滴(特别是超时处理)

    如果要批量复制大量的数据,用ado.net或者其他orm框架逐条读取并写入,有时会耗时太长,满足不了要求,此时SqlBulkCopy就可以出来大显身手了,相信许多人了解或使用过它. 但实际使用时,还是 ...

  3. 20190429 - 如何访问 macOS 的 httpd、mysql 等服务

    问题:在局域网,通过其它机器访问 macOS 上的服务时,提示拒绝. 解决:将 macOS 防火墙 80.3306 端口打开. macOS 内置防火墙,也许开启了防火墙.Icefloor 是一个老牌的 ...

  4. windows下nginx的安装及使用

    安装过程比较简单 1.下载nginx http://nginx.org/en/download.html 下载稳定版本,以nginx/Windows-1.14.2为例,直接下载 nginx-1.14. ...

  5. 教你如何把openfire的muc聊天室改造为群

    openfire群聊与QQ群对比 应该是去年的时候开始接触openfire,当时在分析后发现基于xmpp协议的openfire已经具备了群聊的功能.也就没太当回事,觉得加点功能就可以做成类似于QQ群的 ...

  6. 超好用的C#控制台应用模板

    本文是Wei的公众号投稿文章: 默认模板之缺 在工作学习中,我们经常需要创建一些简单的控制台应用(Console App)去验证某个想法,或者作为小工具交付给其他同事. 通常我们的选择是 Visual ...

  7. 页面结构化在 Android 上的尝试

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/M45DM5Ix7a2fmrsE8VPvxg 作者:b ...

  8. Python3+Flask+uwsgi部署

    python3 按照常规的方式安装即可: wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz tar zxvf Python-3 ...

  9. 【Linux基础】常用Linux命令: cd, cp, ls, mkdir, mv, rm, su, uname

    常用Linux命令:cd, cp, ls, mkdir, mv, rm, su, uname cd命令:切换当前工作目录至 dirName(目录参数) 其中 dirName 可为绝对路径或相对路径.若 ...

  10. Mybatis之旅第一篇-初识Mybatis

    一.JDBC的问题 为什么我们要使用Mybatis,是因为JDBC存在以下问题 1. 数据库连接创建.释放频繁造成系统资源浪费,从而影响系统性能.如果使用数据库连接池可解决此问题. 2. Sql语句在 ...