APP开发平台 > Blog > LocalStorage与sessionStorage 清除登陆数据的差异

clearStorage,LocalStorage,sessionStorage

  sessionStorageLocalStorage 清除登陆数据的异同

  sessionStorage 和 localStorage 其实就一个不同,sessionStorage数据的存储仅特定于某个会话中,也就是说储存的数据直到浏览器关闭,当浏览器重新打开时sessionStorage中之前储存的数据就会被清除掉,但是LocalStorage的数据储存方式,不只是局限于这种会话。


  sessionStorage和localStorage提供的key()和length方法可以轻松实现数据检索,示例代码:

  [code=”javascript”]

  var storage = window.localStorage;

  for (var i=0, len = storage.length; i < len; i++)

  { var key = storage.key(i); var value = storage.getItem(key); console.log(key + "=" + value); }

  [/code]


  sessionStorage 和 localStorage的clear()函数用于清空同源的本地存储数据,例如localStorage.clear()它将删除所有同源的本地存储的localStorage数据,但是Session Storage,它只清空当前会话存储的数据。 只是页面关闭时sessionStorage 的数据被清除,但刷新或重新打开新页面数据还是存在。


  所以 sessionStorage 和 localStorage的区别主要是使用场景的不同,例如:

  如果需要存储的只是少量临时数据,我们可以使用sessionStorage 或者做页面间的小交互。 sessionStorage 和 localStorage具有相同的方法storage事件,在存储事件的处理函数中是不能取消这个存储动作的。存储事件只是浏览器在数据变化发生之后给你的一个通知。


  当setItem(),removeItem()或者clear() 方法被调用,并且数据真的发生了改变时,storage事件就会被触发。注意这里的的条件是数据真的发生了变化。也就是说,如果当前的存储区域是空的,你再去调用clear()是不会触发事件的。或者你通过setItem()来设置一个与现有值相同的值,事件也是不会触发的。当存储区域发生改变时就会被触发,这其中包含许多有用的属性:


  storageArea: 表示存储类型(Session或Local)

  key:发生改变项的key

  oldValue: key的原值

  newValue: key的新值

  url*: key改变发生的URL

  如果调用clear()方法,那么key、oldValue和newValue都会被设置为null。


  App引擎 LocalStorage 如何清除登陆数据,具体的应用举例:

  使用官方封装的setStorage存储登陆数据,比如登陆成功后返回一个外键值:345687(键值是一个随机数)和一个用户名:usenam,

  然而在点击注销后,怎么将setStorage里的键值和用户名清除掉呢?

  可以用:

  .rmStorage()

  描述:清除localStorage中与键名对应的值

  用法:. rmStorage(key)

  参数:key(类型:String):键名

  示例:

  $api.rmStorage('name')

  .clearStorage ()

  描述:清除localStorage的所有数据,慎用

  用法:. clearStorage ()

  示例:

  $api.clearStorage();

  LocalStorage 是封装的API,其实就是使用普通JS也能够操作的,官方封装的方法是clearStorage 在退出方法里面加入你的Storage 的键KEY,执行clearStorage方法就行了。



2017-08-09 来源:APICloud

高效的App定制平台,保上线、便宜、快!

提交APP定制开发需求