HTML5 History API - 状态对象的最大大小是多少?

Kyl*_*yle 14 javascript html5 pushstate

pushState方法接受状态对象.Firefox文档称该对象的最大大小为640kb.是否在规范中定义了浏览器可以实现的最小最大大小是多少?我可以合理地期望主流浏览器能为我提供至少100kb的数据吗?

编辑:我用Chrome测试了它,它仍然适用于超过1MB的状态对象.

Mav*_*ick 12

规范没有规定限制,但是各种浏览器都有自己的限制.

Firefox有很好的文档,正如你所说,它是640kB("任何人都需要的RAM").

我无法在任何地方找到Chrome或Internet Explorer,但一些快速测试显示:

Chrome工作至少10MB(可能还有更多),

IE达到1MB的限制(在IE11中,这是我所有的方便).

因此,总结一下未来的人们:history.state对象大小限制是:640kB适用于Firefox,1MB适用于Internet Explorer 11,至少 10Mb适用于Chrome.

编辑:测试的版本:IE:11,Chrome:33,Firefox:不相关,因为他们为您记录MDN上的最大大小:).

  • 这是您历史记录中的每个条目吗?还是640k是当前网站历史记录中每个页面上所有状态对象的总和的最大大小? (2认同)

Wla*_*ant 7

不.这里的规范性文件是http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#dom-history-pushstate,它甚至没有提到数据的限制尺寸.但是,建议使用不同的限制:

用户代理可以限制每页添加到会话历史记录的状态对象的数量.

正如您在此示例中所看到的,规范通常避免提及任何硬限制,并由浏览器制造商自行决定.因此,即使未来某个时候修改规范以考虑数据大小限制的可能性,也不太可能给出实数.相反,它将"对于常见用例来说足够大".