插件 jQuery.storage api 中文API文档

🌙
手机阅读
本文目录结构

插件 jQuery.storage api 中文API文档

jQuery Storage API

jQuery Storage API是一个插件,可以简化对存储(HTML5),cookie和命名空间存储功能的访问,并为使用cookie的旧浏览器提供兼容性!

功能:

  • 要轻松存储对象,请自动使用JSON对其进行编码/解码
  • 能够定义命名空间并将其用作特定存储
  • Magic getter和setter可以通过一次调用访问无限对象级别
  • 添加js-cookie(https://github.com/js-cookie/js-cookie)并使用此API管理您的cookie

储量

本地存储

$.localStorage

会话存储

$.sessionStorage

Cookie存储(仅在添加了js-cookie时)

$.cookieStorage

命名空间存储

ns=$.initNamespaceStorage('ns_name');
ns.localStorage // Namespace in localStorage
ns.sessionStorage // Namespace in sessionStorage
ns.cookieStorage // Namespace in cookieStorage (only if js-cookie added)

存储的公共方法

公共方法可用于所有存储对象($ .localStorage,$ .sessionStorage,$ .cookieStorage或$ .initNamespaceStorage返回的对象)

storage=$.localStorage

get()

从存储中获取项目。 如果last参数是一个数组(可以在其他参数之前解析存储),则get()返回一个对象,该对象具有该数组的每个项的值。

storage.get('foo') // Return storage.foo
storage.get('foo.foo2.foo3...') // Return storage.foo.foo2.foo3...
storage.get('foo','foo2','foo3'...) // Return storage.foo.foo2.foo3...
storage.get(['foo','foo2']) // Return {foo:storage.foo,foo2:storage.foo2}

set()

在存储中设置项目。 如果argument是一个对象,则set()为该对象的每个属性设置存储值。

storage.set('foo','value') // Set storage.foo to "value"
storage.set('foo.foo2.foo3...','value') // Set storage.foo.foo2.foo3... to "value"
storage.set('foo','foo2','foo3'...,'value') // Set storage.foo.foo2.foo3... to "value"
storage.set({'foo':'value','foo2':'value2'}) // Set storage.foo to "value" and storage.foo2 to "value2"

keys()

获取存储中的存储或项目的密钥。

storage.set('foo','value')
storage.set('foo2','foo3'..., {'foo4':'value4','foo5':'value5'})
storage.keys() // Return keys of storage (["foo", "foo2"])
storage.keys('foo2') // Return keys of storage.foo2 (["foo3"])
storage.keys('foo2.foo3...') // Return keys of storage.foo2.foo3... (["foo4", "foo5"])
storage.keys('foo2','foo3'...) // Return keys of storage.foo2.foo3... (["foo4", "foo5"])

isEmpty()

检查存储中的存储或项目是否为空(如果等于“”,0,null,undefined,[]或{})。 如果last参数是一个数组(可以在其他参数之前解析存储),isEmpty()将测试此数组的每个项的存储,并且仅当所有测试都返回true时才返回true。

storage.set('foo','value')
storage.set('foo2','foo3'..., {'foo4':'value4','foo5':'value5'})
storage.set('foo6','')
storage.set('foo7',{})
storage.isEmpty('foo') // Check if storage.foo is empty (false)
storage.isEmpty('foo6') // Check if storage.foo6 is empty (true)
storage.isEmpty('foo7') // Check if storage.foo7 is empty (true)
storage.isEmpty('foo2.foo3...') // Check if storage.foo2.foo3... is empty (false)
storage.isEmpty('foo2','foo3'...) // Check if storage.foo2.foo3... is empty (false)
storage.isEmpty(['foo','foo2']) // Check if storage.foo and storage.foo2 are empty (false)
storage.isEmpty(['foo','foo7']) // Check if storage.foo and storage.foo7 are empty (false)
storage.isEmpty(['foo6','foo7']) // Check if storage.foo6 and storage.foo7 are empty (true)
storage.isEmpty('foo2','foo3'...,['foo6','foo7']) // Check if storage.foo2.foo3...foo6 and storage.foo2.foo3...foo7 are empty (true)

isSet()

检查存储中是否存在项目(如果不是null或未定义)。 如果最后一个参数是一个数组(可以在其他参数之前解析存储),则isSet()测试此数组的每个项的存储,并且仅当所有测试都返回true时才返回true。

storage.set('foo','value')
storage.set('foo2','foo3'..., {'foo4':'value4','foo5':'value5'})
storage.set('foo6','')
storage.isSet('foo') // Check if storage.foo exists (true)
storage.isSet('foo6') // Check if storage.foo6 exists (true)
storage.isSet('foo7') // Check if storage.foo7 exists (false)
storage.isSet('foo2.foo3'...) // Check if storage.foo2.foo3... exists (true)
storage.isSet('foo2','foo3'...) // Check if storage.foo2.foo3... exists (true)
storage.isSet(['foo','foo2']) // Check if storage.foo and storage.foo2 exist (true)
storage.isSet(['foo','foo7']) // Check if storage.foo and storage.foo7 exist (false)
storage.isSet('foo2','foo3'...,['foo6','foo7']) // Check if storage.foo2.foo3...foo6 and storage.foo2.foo3...foo7 exist (false)

remove()

从存储中删除项目。 如果last参数是一个数组(可以在其他参数之前解析存储),remove()将删除此数组的每个项的存储值。

storage.remove('foo') // Delete storage.foo
storage.remove('foo.foo2.foo3'...) // Delete storage.foo.foo2.foo3...
storage.remove('foo','foo2','foo3'...) // Delete storage.foo.foo2.foo3...
storage.remove(['foo','foo2']) // Delete storage.foo and storage.foo2
### removeAll()

截断存储

storage.removeAll() // Delete all items from the storage
storage.removeAll(true) // Only on global storages. Delete all items from the storage and reinitialize previously initialized namespaces

setExpires()

仅限于cookieStorage。 设置以天为单位的过期日期(默认值为空,cookie仅对会话有效;仅在setExpires()调用后设置的cookie将受到影响)。

storage.setExpires(10) // Set expiry date to today + 10 days

此方法返回存储对象,因此您可以:

storage.setExpires(10).set('foo','value') // Set expiry date to today + 10 days and set a new cookie

setPath()

仅限于cookieStorage。 设置cookie的路径(默认值为null;只有在setPath()调用之后设置的cookie才会受到影响)。

storage.setPath('/') // Set path to '/'

此方法返回存储对象,因此您可以:

storage.setPath('/').set('foo','value') // Set path to '/' and set a new cookie

setDomain()

仅限于cookieStorage。 为cookie设置域(默认值为null;只有在setDomain()调用之后设置的cookie才会受到影响)。

storage.setDomain('www.ndd.com') // Set domain to www.ndd.com

此方法返回存储对象,因此您可以:

storage.setDomain('www.ndd.com').set('foo','value') // Set domain to www.ndd.com and set a new cookie

setConf()

仅限于cookieStorage。 使用对象设置cookie配置(只有在setConf()调用后设置的cookie才会受到影响)。

storage.setConf({path:'/',expires:10,'domain':'www.ndd.com'}) // Set expiry date, domain and path

此方法返回存储对象,因此您可以:

storage.setConf({path:'/',expires:10}).set('foo','value') // Set configuration and set a new cookie

etDefaultConf()

仅限于cookieStorage。

设置默认配置(只有在setDefaultConf()调用后设置的cookie才会受到影响)。

storage.setDefaultConf() // Set path, domain and expiry date to null

此方法返回存储对象,因此您可以:

storage.setDefaultConf().set('foo','value') // Set default configuration and set a new cookie

$.namespaceStorages

包含所有初始化命名空间存储的对象。

$.removeAllStorages()

删除所有存储的所有项目。 作为removeAll(),如果给定的第一个参数设置为true,则会重新初始化名称空间。 否则,$ .namespaceStorages设置为空对象,之前的命名空间将丢失。

$.alwaysUseJsonInStorage()

默认情况下,基本值(string,int …)始终以字符串形式存储在html5存储中。

window.localStorage.setItem('foo', 1);
window.localStorage.getItem('foo'); // Return "1"

因此,默认情况下,如果您使用插件执行等效操作,则会出现相同的行为。

$.localStorage.set('foo', 1);
$.localStorage.get('foo'); // Return "1"

仅当您将基本值存储在存储的根目录中时才会出现这种情况。 在其他情况下,插件使用JSON来存储值。

$.localStorage.set('foo.foo2', 1);
$.localStorage.get('foo.foo2'); // Return 1
window.localStorage.getItem('foo'); // Return "{"foo2":1}"

如果您希望能够在存储的根目录中存储键入的值,请调用 $.alwaysUseJsonInStorage(true)

$.alwaysUseJsonInStorage(true);

$.localStorage.set('foo', 1);
$.localStorage.get('foo'); // Return 1
window.localStorage.getItem('foo'); // Return "1"

$.localStorage.set('foo', '1');
$.localStorage.get('foo'); // Return "1"
window.localStorage.getItem('foo'); // Return ""1"", because value is JSON encoded

兼容性

jQuery Storage API与除IE8之外的所有支持存储和JSON的浏览器(所有最新浏览器)兼容。

如果您需要IE <9的支持,请使用此插件的旧版本(最新兼容版本为1.7.5)。

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了