从Chrome扩展程序中的存储请求数据

时间:2016-07-28 09:11:39

标签: javascript google-chrome google-chrome-extension

我正在使用Chrome存储API,其方法为chrome.storage.local.get('key');

我的程序将在每天存储一个数据列表。

我存储的数据类型(不太重要)
If user browse facebook.com for N minutes and google.com for M minutes in 2016/7/28, I'll store "facebook.com||N::google.com||M" in key "2016/7/28". '::' seperates each data '||' seperate domain and time.

问题是什么

这组数据可能会变得非常大,我的一个程序功能会从存储中请求不确定的许多(任何自然数)日期数据。

考虑:

1.请求的天数不确定,因此数据不应存储在单个密钥中。或者,即使我只要求一天,我也需要从存储中提取大量数据,这看起来绝对是白痴。

2. 但是!如果程序要求存储100多个或更多数据,我需要为每个日期调用chrome.storage.local.get('date');方法。但我不确定这种方法是如何实现的,以及它是否可以完成这样的疯狂任务。即使它可以,我也不确定是否应该完全连接100多个回调(看起来像一个强大的炸弹)。

3.或者,我应该放弃此功能并强制用户选择有限的选项(例如:只能选择10,50,100,365天)。在这种情况下,我只需要管理每个选项的数据结构。但这似乎并不酷:(

我更喜欢案例1或案例2或案例3.或者,这种情况是否有任何可能的解决办法? 谢谢!

1 个答案:

答案 0 :(得分:1)

chrome.storage.local.get也接受array作为键,您可以将100多个日期包装为数组,例如[DAY1, DAY2, ..., DAY100]

chrome.storage.local.get([DAY1, DAY2, ..., DAY100], function (result) {
    var DAY1 = result.DAY1;
});

顺便说一句,如果数据足够大,您会考虑unlimitedStorage权限。