在Chrome扩展程序中存储静态JSON数据的位置?

时间:2017-10-10 12:47:03

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

我的扩展程序中有大约350行静态JSON数据。该数据用于内容脚本,并且需要所有这些数据。它是键值对的列表。每当用户点击页面时,如果它们与条件匹配并且执行了适当的操作,则检查所有键。类似的东西:

{
    "ABC": 323.32,
    "BDS": 23.12,
    "GTO": 96.52
}

最好把它放在哪里?我提出了三个想法:

  • 将其直接包含在内容脚本中。
  • 将其加载到“事件页面”中,并使用“消息传递”检索数据。
  • 将其存储在JSON文件中,以某种方式使用XHR检索它。但我并不认为这是可能的。

我知道localStorage并且我已经看过Chrome的各种其他类型的存储空间。但是,它们似乎是用于在用户使用扩展程序执行操作时生成的数据。

我的数据是静态的。安装扩展程序后,它不会更改。也就是说,直到扩展程序收到更新并最终修改

目前,数据位于内容脚本中。我认为这并不好,因为每次打开页面时它都会被加载,而它根本不会发生变化。因此,事件页面似乎更合适。 但是,此类数据是否有设计

1 个答案:

答案 0 :(得分:4)

您可以使用XHR或fetch检索它。使用chrome.extension.getURL获取文件的网址。

这应该有效:

fetch(chrome.extension.getURL('/data.json'))
    .then((resp) => resp.json())
    .then(function (jsonData) {
        console.log(jsonData);
    });

你还必须将它添加到你的manifest.json:

"web_accessible_resources": [
  "data.json"
],