离线检测
使用属性 navigetor.online 进行判断,同时可以使用事件进行监听。
EventUtil.addHandler(window,'online',function(){
alert('online');
}
EvetntUtil.addHandler(window,'offline',function(){
alert('offline');
}
应用缓存
HTML5的应用缓存(appcache)是从浏览器中分出来的一块缓存区,想要在这个缓存中保存数据,可以使用一个描述文件,列出要下载和缓存的资源。在< html >中的manifest属性中制定这个文件。这个文件的MIME类型必须是 text/cache-mainfest。扩展名使用appache。可以使用applicationCache的status属性获取描述文件的内容状态情况。
0 无缓存
1 闲置
2 检查中
3 下载中
4 更新完成
数据存储
Cookie
不同浏览器对于Cookie的长度限制不同但是大多控制在4095B以内,尺寸限制影响到一个域下所有Cookie,而并非每个Cookie单独限制。
Cookie的存储需要进行编码,一下是我针对Cookie的操作写的一个小的插件。
;(function(){
Cookie = {
get: function (keyName){
var cookieStr=document.cookie,
start=cookieStr.indexOf(keyName),
nameLength=keyName.length,
end = cookieStr.indexOf(start, ';');
if(end == -1){
end = cookieStr.length;
}
if(start > -1){
return decodeURIComponent(cookieStr.slice(start + nameLength + 1, end + 1));
} else {
return '';
}
},
_set: function(name, value, opt) {
var cookieText=encodeURIComponent(name) + '=' + encodeURIComponent(value);
if(opt){
if(opt.expries instanceof Date) {
cookieText +='; expries=' + opt.expries.toGMTString();
}
if(opt.path){
cookieText +='; path=' + opt.path;
}
if(opt.domin){
cookieText +='; domain=' + opt.domain;
}
if(opt.secure) {
cookieText += '; secure';
}
}
document.cookie = cookieText;
},
add: function(name, value, opt){
var preValue = this.get(name);
if(preValue){
value += ("|" + preValue);
}
this._set(name, value, opt);
},
unset: function (name, opt) {
opt.expries = new Date(0);
this._set(name, '', opt);
}
};
})();
注
cookie中没有办法删除只能通过给该名称的val复空值实现清空。
web 存储机制
Storage类型
包括sessionStorage对象、gloablStorage对象、localStorage对象,该类型的对象改变都会触发相应的storage事件。
关于这部分的应用我也将常用操作封装成为对象。
;(function(){
locstr = {
get:function(name) {
return localStorage.getItem(name);
},
_set:function(name,val) {
localStorage.setItem(name,val);
},
add:function(name,val) {
var pre = this.get(name);
if(pre!='null'){
val = val +','+ pre ;
}
this._set(name,val)
},
remove:function(name) {
localStorage.removeItem(name);
}
}
})();