• Local Storage简要研究


    在网页中经常会用到local storage的技术,我看了一下它在chromium源码中的实现。

    打开一个网页,在js调用local storage接口时,比如localStorage.getItem(key)。首先会从leveldb数据库中获取当前网站之前存储的数据信息把他放到内存DOMStorageMap中,然后读取的时候就直接从DOMStorageMap类的std::map成员获取item。setItem的时候会把数据写到leveldb中。leveldb里面kv的存储内容为key:url+itemKey value:itemValue。加载leveldb数据的时候会筛选出当前网站的local storage通过判断它的key的前缀,这样就做到了对于不同网站的local storage数据存储的隔离。

    画了里面涉及到的类的时序图:

    image-20201101194820134

    image-20201101195050516

    js的调用的browser里面是在renderer进程,对leveldb数据库的操作是在browser进程,这两个进程之间的通信依靠mojom。mojom IPC在linux平台的底层实现是通过domain socket实现的。

  • 相关阅读:
    mysql数据库中的锁
    HihoCoder
    旅游规划(双权连通图)
    单调栈的原理
    战争联盟(并查集)
    点赞狂魔(巧用STL容器事半功倍)
    这是二叉搜索树吗?
    好像是两种权的dijkstra
    pat--046.整除光棍(除法模拟)
    幸运数字 2
  • 原文地址:https://www.cnblogs.com/SuzanneHuang/p/13911666.html
Copyright © 2020-2023  润新知