gpt4 book ai didi

javascript - 如何有效地将项目添加到 Chrome 存储 API 中的数组?

转载 作者:数据小太阳 更新时间:2023-10-29 05:38:25 24 4
gpt4 key购买 nike

据我了解,如果您想在 Chrome Storage API 中存储一个数组,并不断添加项目,您需要这样的东西:

function addToHistory(url) {
chrome.storage.sync.get('history', function(obj) {
var history = obj.hasOwnProperty('history') ? obj.history : [];
history.push(url);
chrome.storage.sync.set({'history': history}, function() {
if (chrome.runtime.lastError)
console.log(chrome.runtime.lastError);
else
console.log("History saved successfully");
});
});
}

这段代码困扰着我; 每次将单个项目推到末尾时加载然后保存相同的数组是非常低效的(尤其是当您的history 数组开始获得数千个条目时)。

有没有更有效的方法?我假设我不是第一个想要推送到数组的人,那么是否已经有推荐的方法来实现这一点?

最佳答案

我认为 chrome.storage.sync API 不适合您的需求。基本上这个 API 非常适合记住用户偏好或简单而简短的数据。Sync API 有以下使用限制:- 102.4 KB 用于存储中保存的所有数据- 每个项目 8 KB 的数据- 每小时 1,800 次写入

因此,如果您计划使用此 API 来存储一些历史数据,则该应用可能会很快超出限制。

我假设您正在开发扩展程序,而不是应用程序。在应用程序中,您可以访问 chrome.syncFileSystem API,该 API 可用于将可同步数据保存在文件中。

回答您的问题没有一种方法可以优化您的功能。您可以尝试定期存储数据 - 例如每 30 秒左右。您只需要记住在用户关闭应用后保存数据即可。

您还可以将此值作为变量存储在内存中,并在用户离开屏幕或关闭应用程序时保存它,但这很危险,因为应用程序可能会在异步任务完成之前关闭。

无论如何,我认为这个 API 不是您应用的最佳解决方案。

关于javascript - 如何有效地将项目添加到 Chrome 存储 API 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29191731/

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