chrome.storage.sync 的替代方案,可以在密钥中存储超过 8kb

Alternative to chrome.storage.sync that can store more than 8kb in a key

我构建了一个 chrome 扩展,它从弹出表单中获取信息,以某种方式格式化,然后吐出那张“卡片”。请看下面的图片。

https://i.stack.imgur.com/PkDU0.png

当它吐出单独的“卡片”时,它会将包含所有卡片的 div 的 innerHTML 保存到存储中。当程序加载时,它从存储中取出该项目并根据保存的内容更改 div 的 innerHTML。这样,当我刷新或退出并返回时,卡片不会消失。

但是,我 运行 遇到了一些问题,因为我打算在多台计算机上使用该程序,但我不希望一台计算机上的卡与另一台计算机上的卡不同。

我的目标:能够在多台计算机上保存两个字符串(可能很大,远远超过 8kb)。

我尝试过的:

代码:

function setOnLocalStorage(){
    chrome.storage.sync.set({'template': document.getElementById('cards').innerHTML})
    chrome.storage.sync.set({'groupTemplate': document.getElementById('listContainer').innerHTML})

chrome.storage.sync.get('template', function(data){   
    var z = data
    document.getElementById('cards').innerHTML = [Object.values(z)[0]]
    })

chrome.storage.sync.get('groupTemplate', function(data){   
    var y = data
    document.getElementById('listContainer').innerHTML = [Object.values(y)[0]]
    })

其他信息: 如果有帮助,每张卡片都是单独的 divs。 我在每张卡片上都有删除和复制功能,可通过更改的上下文菜单使用。

如果要存储的值略高于 8 Kb,您可以使用压缩内容 (zip) 的 js 库。 您还可以实施定制例程,将值拆分为小于 8kb 的键,并在需要检索原始值时连接这些键。
您可以将这两种方法合并在一起,或者...
...您可以使用 supabase 或 firebase 服务。