不要直接使用localStorage,Safari的隐身模式下本地存储会被禁用

因为Safari的隐身模式下本地存储会被禁用,若是你尝试往localStorage写数据的话,会报超出使用限制的错误: QuotaExceededError (DOM Exception 22): The quota has been exceeded.cookie

Data.hasLocalStorage = true;
try{
    window.localStorage.trySetData = 1;
}catch(e){
    Data.hasLocalStorage = false;
}
setLocalData: function(key, value){ 
    if(Data.hasLocalStorage){
        window.localStorage[key] = value;
    }
    else{   
        util.setCookie("_LOCAL_DATA_" + key, value, 1000);
    }
},
getLocalData: function(key){
    if(Data.hasLocalStorage){
        return window.localStorage[key];
    }
    else{
        return util.getCookie("_LOCAL_DATA_" + key);
    }
}

上面代码作了个兼容,若是不支持localStorage就使用cookie。要注意cookie一个域名最多只能有4kB,50个key,而本地存储限制为5Mb.code

相关文章
相关标签/搜索