`
liuguofeng
  • 浏览: 449536 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

localStorage的增删改查的方法

 
阅读更多

http://www.cnblogs.com/webzhangnan/archive/2012/12/03/2800567.html

(function($){

    /*

     * $.cookie('name', 'test',{expires: 7});  //设置  

     * 

     * */

    $.cookie = function(name, value, options) {

        if (typeof value != 'undefined') {

                  options = options || {};

                  if (value === null) {

                            value = '';

                            options = $.extend({}, options);

                            options.expires = -1;

                  }

                  var expires = '';

                  if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {

                            var date;

                            if (typeof options.expires == 'number') {

                                      date = new Date();

                                      date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));

                            } else {

                                      date = options.expires;

                            }

                            expires = '; expires=' + date.toUTCString();

                  }

                  var path = options.path ? '; path=' + (options.path) : '';

                  var domain = options.domain ? '; domain=' + (options.domain) : '';

                  var secure = options.secure ? '; secure' : '';

                  document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');

                  return this;

            } else {

                  var cookieValue = null;

                  if (document.cookie && document.cookie != '') {

                            var cookies = document.cookie.split(';');

                            for (var i = 0; i < cookies.length; i++) {

                                  var cookie = cookies[i].trim();

                                  if (cookie.substring(0, name.length + 1) == (name + '=')) {

                                            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));

                                            break;

                                  }

                            }

                  }

                  return cookieValue;

        }

    };

    /*

     * 

     * $.localStorage('test') //get

     * $.localStorage('test',123) //set

     * $.localStorage('test',{value:123}) //set

     * $.localStorage('test',{value:123}, 1) //set

     * $.localStorage('test',null) //remove

     * 

     */

    var isCache=true,

        minutes =  1000*60,

        now = Date.now();

    

        try {

              localStorage.setItem('cache','test');

        } catch (e) {

            isCache= false;

        }

    

    resetCache = function(time){//定时清理

        if(!isCache)

            return ;

        var expires, day= minutes*60*24;

        time = time || 0;

        if((expires=localStorage.getItem('_expires')) && expires>now){

            return false;

        }

        

        var len= localStorage.length,item,key,t;

        for(var i=0; i<len; i++){

            key= localStorage.key(i);

            item=localStorage.getItem(key);

 

            

            if(item && item.indexOf('_expires')!=-1){

                t=item.match(/_expires":(\d+)/)[1];

                if(now<t){

                    continue;

                }

            }

            localStorage.removeItem(key);

        }

 

        

        return localStorage.setItem('_expires', day*time);

    }

          

    resetCache(60);    //2个月检测一遍

 

    

 

 

    $.localStorage = function(name, value, time) {    

        if(!isCache)

            return false;

        

        

        if (typeof value != 'undefined') {    //set

            

            if(value===null){

                return localStorage.removeItem(name);

            }

            

            if(!isNaN(+time)){

                value = {value: value, _expires : now+time*minutes};

            }

            

            localStorage.setItem(name,JSON.stringify(value));  

            

            return value.value || value;

            

         }else{        //get

                var localValue = null,st,et;

                localValue = localStorage.getItem(name);

                

                    try {

                        localValue = JSON.parse(localValue);

                } catch (e) {

                    return localValue;

                }

                

                if($.isObject(localValue) && (et=localValue._expires) ){

                    if(now > et){

                        localStorage.removeItem(name);

                        localValue=null;

                    }else{

                        localValue =  localValue['value'];

                    }

                }

                 return localValue;

        }

    };

})(Zepto);

分享到:
评论

相关推荐

    Vue2.0 V1.1版本 增删改查功能,全选单选与取消全选选项,使用localStorage本地存储数据和watch深度监听

    Vue2.0 V1.0的增删改查功 全选单选与取消全选选项, 使用了localStorage本地存储数据和watch深度监听数据选项变化。TodoList完善版。 用于学习的小Demo. TodoList 传值学习,父传子 子传孙 子传父 传值等学习,全选...

    web js购物车(增删改查)

    本项目"web js购物车(增删改查)"是针对初学者设计的一个实践案例,旨在帮助他们理解如何使用JavaScript实现购物车的基本功能,如添加商品、删除商品、修改商品数量以及查询购物车内商品。以下将详细介绍这些核心...

    IndexedDB增删改查插件,分别对增删改查进行了封装,调用对应的函数即可

    官网上的这句话也很简单明了,意思就是IndexedDB主要用来客户端存储大量数据而生的,我们都知道cookie、localstorage等存储方式都有存储大小限制。如果数据量很大,且都需要客户端存储时,那么就可以使用IndexedDB...

    javascript增删改查,数据存储在top窗口

    在"javascript增删改查,数据存储在top窗口"这个主题中,我们将深入探讨如何利用JavaScript来实现对数据的增删改查操作,并且如何在顶级窗口(top)中进行数据存储。 一、JavaScript数据操作基础 1. 增加(Add):在...

    html只在前端原生增删改查HTML.zip

    在这个"html只在前端原生增删改查HTML.zip"压缩包中,我们看到的是一个使用纯HTML和JavaScript实现的前端数据管理示例。这个示例可能包含了以下几个关键知识点: 1. **HTML表单**:HTML中的`&lt;form&gt;`元素用于创建...

    关于jq实现购物车增删改查及金额结算的案例源码

    同时,为了防止用户误操作导致的数据丢失,还可以提供保存和恢复购物车功能,利用`localStorage`或`sessionStorage`在浏览器端存储购物车状态。 总之,这个案例涵盖了jQuery在前端开发中的常见应用,通过DOM操作、...

    table增删改操作

    table表格的增删改功能,鼠标左键双击可编辑,下方按钮增加,右侧删除,表格数据计入localstorage,不会因刷新而消失

    html5+js 读写sqlite增删改查

    本教程将详细介绍如何使用HTML5和JavaScript进行SQLite的增删改查操作,并在Android Studio环境中实现完美对接。 首先,HTML5引入了Web SQL Database API,虽然这个API已经被废弃,但SQLite作为其背后的数据库引擎...

    WebSQL例子、webSQL 增删改查

    它提供了类似于关系数据库管理系统(RDBMS)的功能,允许开发者在客户端进行数据的增删改查操作,无需服务器端交互。虽然现在WebSQL已经被W3C弃用,但它在一些旧的或特定的项目中仍然被广泛使用,尤其是在移动应用...

    增删改查的部分代码了解一下

    ### 增删改查的部分代码详解 #### 一、Vue3与Express结合实现CRUD操作 本案例展示了如何利用Vue3(前端)与Express(后端)来实现常见的数据库操作——即“增删改查”(Create, Read, Update, Delete)。这种组合...

    js操作cookie(增删改查)

    本文将详细介绍如何通过JavaScript进行Cookie的增删改查操作。 一、添加Cookie 添加Cookie主要使用`document.cookie`属性。这个属性的值是一个字符串,包含了多个键值对,每个键值对之间用分号`;`分隔。键值对由...

    vue简单增删改.rar

    在“vue简单增删改.rar”这个压缩包中,你将找到一个适合初学者的Vue实践项目,它展示了如何在前端应用中实现数据的增删改查操作。这个项目不仅有助于理解Vue的基础概念,还能帮助你掌握Vue的组件挂载、双向数据绑定...

    学生就业信息管理系统,利用html,css,js技术简单的实现,完成了增删改查的操作

    本项目利用基础的Web前端技术——HTML、CSS和JavaScript,实现了学生就业信息的增删改查功能,为初学者提供了一个极好的实践平台。 HTML(HyperText Markup Language)是网页内容的基础结构,负责定义页面的元素和...

    html5本地存储web sql数据库操作增删查找实例

    本文将深入探讨HTML5中的Web SQL数据库,包括它的创建、表格操作以及数据的增删查改。 首先,Web SQL数据库是基于SQLite的关系型数据库,它允许网页在用户的浏览器中存储大量结构化数据。这使得Web应用能够在离线...

    localstorage-management:这个 javascript 库为 manager localstorage 提供了一个功能

    - 键值对的增删改查操作:除了基本的`setItem`、`getItem`、`removeItem`和`clear`,还可能提供了更高级的查询和更新功能。 - JSON序列化与反序列化:自动处理非字符串数据类型的存储,如对象和数组。 - 事件监听:...

    基于html5的localstorage的本地存储数据库.zip

    这可能包括了数据模型的设计、增删改查的操作实现,以及可能的错误处理机制。开发者可能使用JavaScript对象来模拟数据库记录,并通过Local Storage进行持久化存储。此外,还可能涉及到了事件监听,以便在数据变化时...

    学生信息后台管理(本地存储版)源码

    增删改查是数据库操作中的基本动作,对应到这个系统中,即添加新学生信息、删除学生信息、修改已有学生信息以及查询学生信息。这些功能体现了系统的实用性,使得用户能够有效地管理学生档案。 【标签解析】 ...

    pnonegap入门小Demo 用户基本管理

    这些元素的点击事件通常会绑定到JavaScript函数,执行相应的增删改查操作。 8. **调试与测试** 在开发过程中,可以使用Chrome的开发者工具(DevTools)进行前端调试,检查Local Storage中的数据变化。对于Android...

    详解Vue中localstorage和sessionstorage的使用

    - **封装存储方法**:通过创建一个统一的存储工具类,将`localStorage`和`sessionStorage`的增删改查操作封装成方法,降低耦合度。这样可以方便地切换实现方式,比如未来可能需要支持更多的存储方案(如Cookie或...

Global site tag (gtag.js) - Google Analytics