設置緩存數據js源代碼cache.js,可用于在瀏覽器中利用js緩存數據,需要的小伙伴可以了解一下。
cache.js源代碼如下:
$.extend($, {
Cache : {
userData: false,
supportLocalStorage: typeof localStorage == 'object' ? true : false,
name: location.hostname,
init: function () {
if ( $.Cache.supportLocalStorage )
return false;
if ( !$.Cache.userData ) {
try {
$.Cache.userData = document.createElement('INPUT');
$.Cache.userData.type = "hidden";
$.Cache.userData.style.display = "none";
$.Cache.userData.addBehavior("#default#userData");
document.body.appendChild($.Cache.userData);
var expires = new Date();
expires.setDate(expires.getDate() + 365);
$.Cache.userData.expires = expires.toUTCString();
} catch (e) {
return false;
}
}
return true;
},
set: function (key, value, expire) {
if ( typeof value == 'object' ) {
value = JSON.stringify(value);
}
if ( expire == undefined )
expire = 0;
if ( $.Cache.init() ) {
$.Cache.userData.load($.Cache.name);
$.Cache.userData.setAttribute(key, value);
if ( expire > 0 ) {
var timestamp = Date.parse(new Date());
var expiration = timestamp + expire;
$.Cache.userData.setAttribute(key + "_EXPIRE", expiration);
}
$.Cache.userData.save($.Cache.name);
} else {
localStorage.setItem(key, value);
if ( expire > 0 ) {
var timestamp = Date.parse(new Date());
var expiration = timestamp + expire;
localStorage.setItem(key + "_EXPIRE", expiration);
}
}
},
get: function (key) {
var val;
var timestamp = Date.parse(new Date());
if ( $.Cache.init() ) {
$.Cache.userData.load($.Cache.name);
val = $.Cache.userData.getAttribute(key);
var expiration = $.Cache.userData.getAttribute(key + "_EXPIRE");
if ( expiration != null && expiration != undefined && expiration > 0 ) {
if ( expiration < timestamp) {
$.Cache.userData.removeAttribute(key);
$.Cache.userData.removeAttribute(key + "_EXPIRE");
return undefined;
}
}
} else {
val = localStorage.getItem(key);
var expiration = localStorage.getItem(key + "_EXPIRE");
if ( expiration != null && expiration != undefined && expiration > 0 ) {
if ( expiration < timestamp) {
localStorage.removeItem(key);
localStorage.removeItem(key + "_EXPIRE");
return undefined;
}
}
}
if ( val == null || val == undefined || val == "" )
return undefined;
if ( val.indexOf("{") == 0 || val.indexOf("[") == 0 ) {
return JSON.parse(val);
}
return val;
},
del : function(key) {
if ( $.Cache.init() ) {
$.Cache.userData.load($.Cache.name);
$.Cache.userData.removeAttribute(key);
$.Cache.userData.removeAttribute(key + "_EXPIRE");
} else {
localStorage.removeItem(key);
localStorage.removeItem(key + "_EXPIRE");
}
},
}
});
使用方法演示:
$(function(){
var cacheCity = $.Cache.get('city');
var cacheCity_id = $.Cache.get('city_id');
if ( cacheCity ) {
$("input[name=city]").val(cacheCity);
}
if(cacheCity_id){
$("input[name=city_id]").val(cacheCity_id);
}
}
緩存數據可直接賦值給input,使用起來還是非常方便的。