天天看點

《Web性能實踐日志》一2.2 這是怎麼回事

本節書摘來自異步社群《web性能實踐日志》一書中的第2章,第2.2節,作者【加拿大】stoyan stefanov,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

為了保持跨浏覽器會話,localstorage的資料被寫入磁盤中。這意味着當你從localstorage中讀取資料時,你實際上是從硬碟驅動器上讀取這些位元組。讀寫硬碟開銷高昂,特别是相對于讀寫記憶體來說。從本質上講,這正是我的基準測試所測試的内容,即從緩存(對象屬性)讀取資料和從磁盤(localstorage)讀取資料的速度比較。

《Web性能實踐日志》一2.2 這是怎麼回事

更有趣的是,localstorage按源存儲資料,這意味着,在同一時間内,浏覽器中的多個标簽頁可以通路相同的localstorage資料。

這對于那些需要弄明白如何實作各标簽頁同步通路localstorage的浏覽器開發商來說十分頭疼。當需要從localstorage中讀取資料時,浏覽器首先需要停下來看看是否有其他标簽頁正在通路同一資料區域。如果是的話,浏覽器必須等到之前的通路操作完成,才可以讀取該值。

是以,與從localstorage讀取資料相關的延遲是不定的,它在很大程度上取決于在那個時間點上浏覽器還在進行的其他操作。