天天看点

《Web性能实践日志》一2.2 这是怎么回事

本节书摘来自异步社区《web性能实践日志》一书中的第2章,第2.2节,作者【加拿大】stoyan stefanov,更多章节内容可以访问云栖社区“异步社区”公众号查看

为了保持跨浏览器会话,localstorage的数据被写入磁盘中。这意味着当你从localstorage中读取数据时,你实际上是从硬盘驱动器上读取这些字节。读写硬盘开销高昂,特别是相对于读写内存来说。从本质上讲,这正是我的基准测试所测试的内容,即从缓存(对象属性)读取数据和从磁盘(localstorage)读取数据的速度比较。

《Web性能实践日志》一2.2 这是怎么回事

更有趣的是,localstorage按源存储数据,这意味着,在同一时间内,浏览器中的多个标签页可以访问相同的localstorage数据。

这对于那些需要弄明白如何实现各标签页同步访问localstorage的浏览器开发商来说十分头疼。当需要从localstorage中读取数据时,浏览器首先需要停下来看看是否有其他标签页正在访问同一数据区域。如果是的话,浏览器必须等到之前的访问操作完成,才可以读取该值。

因此,与从localstorage读取数据相关的延迟是不定的,它在很大程度上取决于在那个时间点上浏览器还在进行的其他操作。