gpt4 book ai didi

javascript - 如何在 Chrome 扩展程序中缓存数据?

转载 作者:数据小太阳 更新时间:2023-10-29 04:10:22 46 4
gpt4 key购买 nike

我正在为我工​​作的图书馆编写 Chrome 扩展程序。该扩展程序每次打开时都会从图书馆的 API 中获取最新的书名。

随着它被越来越多的人使用,它给发送 API 数据的图书馆服务器带来了巨大的负担。

在 Chrome 扩展程序中缓存数据的方式是什么?

例如,我想在第一次打开 Chrome 扩展程序时获取数据,然后将其保存(不确定保存在何处?),并且仅在 1 小时后才向 API 发出请求并再次保存数据。

有人可以推荐一种在 Chrome 扩展程序中执行此操作的方法吗?

最佳答案

对于本地存储,使用 chrome.storage.local .它有一个非常简单的 API 和每个配置文件 5 MB 的存储空间。

权限是 “storage”,它将授予您访问 chrome.storage.localchrome.storage.sync 的权限。 local 是每个配置文件 5 MB,保存在客户端上。 sync 为 100 KB,保存在 Google 帐户中。相同的 API。

我发现 sync 不可靠,但您的需求似乎是 local

用法:

function fetchLive(callback) {
doSomething(function(data) {
chrome.storage.local.set({cache: data, cacheTime: Date.now()}, function() {
callback(data);
});
});
}

function fetch(callback) {
chrome.storage.local.get(['cache', 'cacheTime'], function(items) {
if (items.cache && items.cacheTime && items.cacheTime) {
if (items.cacheTime > Date.now() - 3600*1000) {
return callback(items.cache); // Serialization is auto, so nested objects are no problem
}
}

fetchLive(callback);
});
}

关于javascript - 如何在 Chrome 扩展程序中缓存数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766467/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com