阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      插件 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)。

      目录
      目录