sle*_*vin 5 javascript error-handling html5 local-storage
我正在使用html5的localStorage API.
我想赶上,QUOTA_EXCEEDED_ERR
所以我可以向用户显示一条消息,如"内存已满.无法保存.也许删除一些项目?"
我将使用的代码就像
function save() {
try {
localStorage.setItem(key, name);
} catch (e) {
if (e.name === 'QUOTA_EXCEEDED_ERR') {
alert("Memory is full. Cannot save. Maybe delete a few items?");
} else {
alert("Something went wrong? Try again later?")
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想问你,这样可以吗?这适用于所有浏览器吗?反正会工作正常还是休息?
当然我也在测试它,但我想我还是应该问,因为也许我错过了什么.
e.name
对于超出配额的错误,并不总是必须"QUOTA_EXCEEDED_ERR"
在每个浏览器中.
它可能"NS_ERROR_DOM_QUOTA_REACHED"
在某些版本的FF http://chrisberkhout.com/blog/localstorage-errors/
可能是"QuotaExceededError"
或"W3CException_DOM_QUOTA_EXCEEDED_ERR"
取决于IE浏览器版本/模式http://msdn.microsoft.com/en-us/library/ie/cc197050(v=vs.85).aspx
但是,您仍然在捕捉错误.最糟糕的情况是用户会得到"出错了吗?" 警报与"内存已满"警报.