如何处理Web存储的大小限制?

时间:2011-11-07 09:04:58

标签: javascript exception cross-browser

Web存储的W3C规范(通俗地称为HTML5本地存储,虽然这是用词不当)允许用户代理强制执行大小限制,建议为5MB。根据我在网上找到的各种来源,很多现代浏览器使用这个5MB的限制,除了IE,它提供10MB。

首先,我想知道,限制是否适用于localStorage和sessionStorage的总和,或单独应用于它们?

现在,我们如何实际应对这些限制?有没有办法找出特定浏览器的限制?是否有任何网站维护不同浏览器的统计数据?当浏览器超过限制时抛出异常?是否有一种万无一失的方法来测试不同浏览器中的这个异常“类”?

1 个答案:

答案 0 :(得分:2)

AFAIK,localStorage对象中没有方法来确定其大小。但是,尝试写入超出存储限制的数据量将导致您可以捕获的异常。

查看http://arty.name/localstorage.html

基本上,您可以将写入函数包装在try...catch块中,如下所示:

function write(value, name) {
    try {
        localStorage.field = value;
        return true;
    } catch (e) {
        return false;
    }
}