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.0的增删改查功 全选单选与取消全选选项, 使用了localStorage本地存储数据和watch深度监听数据选项变化。TodoList完善版。 用于学习的小Demo. TodoList 传值学习,父传子 子传孙 子传父 传值等学习,全选...
本项目"web js购物车(增删改查)"是针对初学者设计的一个实践案例,旨在帮助他们理解如何使用JavaScript实现购物车的基本功能,如添加商品、删除商品、修改商品数量以及查询购物车内商品。以下将详细介绍这些核心...
官网上的这句话也很简单明了,意思就是IndexedDB主要用来客户端存储大量数据而生的,我们都知道cookie、localstorage等存储方式都有存储大小限制。如果数据量很大,且都需要客户端存储时,那么就可以使用IndexedDB...
在"javascript增删改查,数据存储在top窗口"这个主题中,我们将深入探讨如何利用JavaScript来实现对数据的增删改查操作,并且如何在顶级窗口(top)中进行数据存储。 一、JavaScript数据操作基础 1. 增加(Add):在...
在这个"html只在前端原生增删改查HTML.zip"压缩包中,我们看到的是一个使用纯HTML和JavaScript实现的前端数据管理示例。这个示例可能包含了以下几个关键知识点: 1. **HTML表单**:HTML中的`<form>`元素用于创建...
同时,为了防止用户误操作导致的数据丢失,还可以提供保存和恢复购物车功能,利用`localStorage`或`sessionStorage`在浏览器端存储购物车状态。 总之,这个案例涵盖了jQuery在前端开发中的常见应用,通过DOM操作、...
table表格的增删改功能,鼠标左键双击可编辑,下方按钮增加,右侧删除,表格数据计入localstorage,不会因刷新而消失
本教程将详细介绍如何使用HTML5和JavaScript进行SQLite的增删改查操作,并在Android Studio环境中实现完美对接。 首先,HTML5引入了Web SQL Database API,虽然这个API已经被废弃,但SQLite作为其背后的数据库引擎...
它提供了类似于关系数据库管理系统(RDBMS)的功能,允许开发者在客户端进行数据的增删改查操作,无需服务器端交互。虽然现在WebSQL已经被W3C弃用,但它在一些旧的或特定的项目中仍然被广泛使用,尤其是在移动应用...
### 增删改查的部分代码详解 #### 一、Vue3与Express结合实现CRUD操作 本案例展示了如何利用Vue3(前端)与Express(后端)来实现常见的数据库操作——即“增删改查”(Create, Read, Update, Delete)。这种组合...
本文将详细介绍如何通过JavaScript进行Cookie的增删改查操作。 一、添加Cookie 添加Cookie主要使用`document.cookie`属性。这个属性的值是一个字符串,包含了多个键值对,每个键值对之间用分号`;`分隔。键值对由...
在“vue简单增删改.rar”这个压缩包中,你将找到一个适合初学者的Vue实践项目,它展示了如何在前端应用中实现数据的增删改查操作。这个项目不仅有助于理解Vue的基础概念,还能帮助你掌握Vue的组件挂载、双向数据绑定...
本项目利用基础的Web前端技术——HTML、CSS和JavaScript,实现了学生就业信息的增删改查功能,为初学者提供了一个极好的实践平台。 HTML(HyperText Markup Language)是网页内容的基础结构,负责定义页面的元素和...
本文将深入探讨HTML5中的Web SQL数据库,包括它的创建、表格操作以及数据的增删查改。 首先,Web SQL数据库是基于SQLite的关系型数据库,它允许网页在用户的浏览器中存储大量结构化数据。这使得Web应用能够在离线...
- 键值对的增删改查操作:除了基本的`setItem`、`getItem`、`removeItem`和`clear`,还可能提供了更高级的查询和更新功能。 - JSON序列化与反序列化:自动处理非字符串数据类型的存储,如对象和数组。 - 事件监听:...
这可能包括了数据模型的设计、增删改查的操作实现,以及可能的错误处理机制。开发者可能使用JavaScript对象来模拟数据库记录,并通过Local Storage进行持久化存储。此外,还可能涉及到了事件监听,以便在数据变化时...
增删改查是数据库操作中的基本动作,对应到这个系统中,即添加新学生信息、删除学生信息、修改已有学生信息以及查询学生信息。这些功能体现了系统的实用性,使得用户能够有效地管理学生档案。 【标签解析】 ...
这些元素的点击事件通常会绑定到JavaScript函数,执行相应的增删改查操作。 8. **调试与测试** 在开发过程中,可以使用Chrome的开发者工具(DevTools)进行前端调试,检查Local Storage中的数据变化。对于Android...
- **封装存储方法**:通过创建一个统一的存储工具类,将`localStorage`和`sessionStorage`的增删改查操作封装成方法,降低耦合度。这样可以方便地切换实现方式,比如未来可能需要支持更多的存储方案(如Cookie或...