`
liuguofeng
  • 浏览: 435225 次
  • 性别: 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 传值学习,父传子 子传孙 子传父 传值等学习,全选...

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

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

    微信小程序本地缓存数据增删改查实例详解

    微信小程序本地缓存数据增删改查实例详解 数据如: var user = { name: 'Lion', sex: 'guy' } CRUD: // 添加 wx.setStorageSync('user', user); // 查询 var developer = (wx.getStorageSync('user') || [])...

    table增删改操作

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

    webSql/LocalStorage

    使用webSql,LocalStorage作为数据存储,实现数据的增删改查

    pnonegap入门小Demo 用户基本管理

    android 入门 phonegap运用利用js 的代码及localstorage 客户端本地存储 实现基本用户管理增删改查,修改有点小巴格。。android phoneage环境配置

    todolist项目,js原生入门项目

    使用原生javascript技术实现了简单的增删改查功能,使用了localstorage本地存储。

    HTML5实现的日志管理系统

    利用HTMl5的sessionStorage和localStorage实现日志的增删改查,并通过canvas绘制出每天的工时统计图。

    jquery+easyui+websql.rar

    使用jquery+easyui框架,采用前端数据库websql/LocalStroage作为数据存储,实现增删改查

    详解vue项目中使用token的身份验证的简单实践

    服务器端,进行对token的验证, 通过的话, 进行相应的增删改查操作, 并将数据返回给前端 为通过则返回错误码, 提示保错信息, 然后跳转到登录页. 具体步骤 所用技术: vuex + axios + localStorage + vue-router 1、...

    小程序极速实战开发《二十八》wx.storage数据缓存

    对每个微信小程序的本地缓存(localStorage)进行增删改查的操作。目前本地缓存最大空间限制在10MB以内(从原先的5MB升级到10MB,意味着这不是最终大小,可能更改),同时,本地缓存将是永久存储

    基于 Vue3+Typescript+Vite4+Pinia2 的王者荣耀图鉴

    此项目无数据库,无后端参与,一切数据存储于json文件中,将json文件托管至服务器,第一次进入网页时下载json获取数据并写入localStorage,通过本地的增、删、查、改方法操作localStorage里的数据 注册、登录、设置...

    如何利用vue+vue-router+elementUI实现简易通讯录

    一个具有基本增删改查功能的通讯录,数据保存在本地的localStorage中。  demo地址: https://junjunhuahua.github.io 1. 所用技术 js框架: vue2 https://cn.vuejs.org/ ui框架: elementUI ...

    jQuery_ToDoList.rar

    使用了jQuery,涉及到本地存储_localStorage中数据的增、删、改、查。

    als.js:ajax监听与拦截 & 服务器与数据库模拟

    它能处理所有增删改查的ajax请求并自动建表 它也可以处理ajax文件上传 不用Mock无意义的数据及写一堆生成规则 它查询出来的就是你提交的数据 安装 [removed][removed] 使用 简单示例 处理一个新增用户的ajax请求 als...

    课设项目-基于Vue开发的一个书城购物网站源码+详细设计报告.zip

    书籍信息:书籍信息存放于data.js内,每个需要的页面可以直接引入,引入后就可以使用了,需要增删改查,只需要进行修改此处的数据即可。 用户信息:用户进行注册的时候,将数据模拟存储在localStorage对象内,使用...

    matlab代码做游戏-made-in-greece:Greece在希腊进行的整洁项目清单

    图像增删改查 75 / Codemagic.gr是用于Web开发的功能强大的在线代码编辑器! 它是开源的,遵循客户端和快速执行的理念。 它是为从事许多与Web相关的实验并且想要实时测试内容的创意人而创建的,而无需准备项目文件之...

    ToDo案例.html

    主要是对localStorage本地存储数据的增、删、改、查操作与页面的渲染。综合性很强。 现在把这个案例作为笔记放在网络上,就算忘记了,也可以随时联网打开,把源码复制过来,根据需求更改使用。有需要的朋友也可以...

    HTML5存储管理器多合一-crx插件

    ✰ 对Session Storage, Local Storage, Cookie 进行增删改查,且操作非常直观方便; ✰ 实时监控当前页面Session Storage和Local Storage数据的变化; ✰ 自动识别存储的JSON格式的数据,并且能够通过Dump JSON...

    Vue 实现前端权限控制的示例代码

    页面中的按钮 (增、删、改、查)的权限控制是否显示 接口权限控制 一、登录权限控制 登录访问权限控制是对用户的校验。在用户登录成功之后,后台将返回一个token,之后前端每次进行接口请求的时候,都要带上这个...

Global site tag (gtag.js) - Google Analytics