【问题标题】:Is localStorage fully loaded only after DOM is ready?localStorage 只有在 DOM 准备好后才完全加载吗?
【发布时间】:2015-05-03 08:43:13
【问题描述】:

我有一些难以重现的 javascript 代码错误(所以没有 jsfiddle,抱歉)。完全相同的浏览器(FF 37.0.2),但是两台不同的机器,我只能在其中一台上重现该错误。

我怀疑这个问题与 localStorage 以及我检查项目是否存在于 $(document).ready() 之外的事实有关。

这是必需的吗?我是否需要等待 DOM 准备好才能可靠地访问 localStorage?我的假设可信吗?

【问题讨论】:

    标签: javascript jquery html local-storage


    【解决方案1】:

    localStorage 不是需要异步“加载”的东西。它在页面开始加载的那一刻可用,并且可以由页面中的任何地方的 Javascript 使用。如果浏览器必须从某处(例如磁盘)获取值,则在您请求数据时或之前同步完成。

    在访问 localStorage 之前无需等待$(document).ready()。您的问题的原因一定是其他原因。

    仅供参考,您可以在此处阅读有关 WebStorage 的规范:http://dev.w3.org/html5/webstorage/#dom-localstorage。该文档的 localStorage 部分没有表明 JS 代码必须“等待”才能访问。

    【讨论】:

    • 感谢您的回答。我并不是说它是规范所要求的,但是 Firefox 有可能以这种方式处理它吗?这个答案让我想到了这个假设:stackoverflow.com/a/13856156/825190
    • @Alessandro - 我不能告诉你 Firefox 在 localStorage 的工作方式上是否存在错误(尽管它是一个已经存在很长时间的旧功能,所以我相当怀疑),但它不应该需要等待 DOM 加载。事实上,localStorage 与 DOM 完全无关——它是一个完全独立的实体,从不同的地方读取,等等......
    猜你喜欢
    • 2015-08-20
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2012-02-12
    • 1970-01-01
    • 2014-06-25
    相关资源
    最近更新 更多