【www.bbyears.com--html5教程】
localStorage – 没有时间限制的数据存储
sessionStorage – 针对一个 session 的数据存储
——————
localStorage 方法
localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
oR.onchange=function(){
document.title=oR.value;
localStorage.rangeValue=oR.value;
}
if(localStorage.rangeValue) { //如果存在就赋值
oR.value=localStorage.rangeValue;
}
存储数据的方法就是直接给window.localStorage添加一个属性,
例如:window.localStorage.a 或者 window.localStorage["a"]。
它的读取、写、删除操作方法很简单,是以键值对的方式存在的,如下:
代码如下 localStorage.a = 3;//设置a为"3"
localStorage["a"] = "sfsf";//设置a为"sfsf",覆盖上面的值
localStorage.setItem("b","isaac");//设置b为"isaac"
var a1 = localStorage["a"];//获取a的值
var a2 = localStorage.a;//获取a的值
var b = localStorage.getItem("b");//获取b的值
localStorage.removeItem("c");//清除c的值
localStorage.setItem(key,value); setItem就是保存数据的意思
localStorage.getItem(key) ;,get一词就是带有拿、取出的意思,注意的是getItem里面的参数是key
如何清除掉本地存储数据?
localStorage.clear(),一次性清除: 使用clear()方法会所有保存数据都清除掉,因此此操作是危险性的,除非你真想这么做
localStorage.removeItem(key) 个别清除
localStorage.length; //返回本地数据的长度
获取第 n 个数据的 key 键值则调用key()方法:localStorage.key(n)
localStorage的存储大小以及溢出检测
溢出检测,采用try{ } catch{ }形式来进行捕捉:
代码如下try{
localStorage.setItem(key,value);
}catch(oException){
if(oException.name == "QuotaExceededError"){
console.log("已经超出本地存储限定大小!");
// 可进行超出限定大小之后的操作,如下面可以先清除记录,再次保存
localStorage.clear();
localStorage.setItem(key,value);
}
}
try…catch 的作用是测试代码中的错误。
try…catch 可以测试代码中的错误。try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。
语法:
try
{
//在此运行代码
}
catch(err)
{
//在此处理错误
}
StorageEvent对象会包含下列的属性。
word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" />
key
oldValue
newValue
url
*url
属性早期的规范中为uri属性。
有些浏览器发布较早,没有包含这一变更。为兼容性考虑,使用url属性前,你应该先检查它是否存在,如果没有url属性,则应该使用uri属性
word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /> 要注意一点,在存储事件的处理函数中是不能取消这个存储动作的。存储事件只是浏览器在数据变化发生之后给你的一个通知。