Javascript 如何在Chrome扩展中动态加载大型JSON文件

Javascript 如何在Chrome扩展中动态加载大型JSON文件,javascript,ajax,json,google-chrome,getjson,Javascript,Ajax,Json,Google Chrome,Getjson,我试图找出最好的方法是动态地将一系列语言词典文件(英语、法语等)加载到Chrome扩展中。我正在处理的约束: 我正在运行一个基于手势识别设备(LEAP)控制浏览器操作的内容脚本,因此它总是在活动选项卡中运行 用户可以通过使用一系列手势打开菜单页面并选择新语言来选择不同的语言 每个字典文件都相当大(~5MB),而且有很多(25+),所以当扩展初始化时,我无法加载所有的字典文件,否则它会把事情搞砸 我想在扩展的主目录中托管字典文件;而不是托管在外部的某个地方 我可以将用户的语言选择存储在Chrome

我试图找出最好的方法是动态地将一系列语言词典文件(英语、法语等)加载到Chrome扩展中。我正在处理的约束:

  • 我正在运行一个基于手势识别设备(LEAP)控制浏览器操作的内容脚本,因此它总是在活动选项卡中运行
  • 用户可以通过使用一系列手势打开菜单页面并选择新语言来选择不同的语言
  • 每个字典文件都相当大(~5MB),而且有很多(25+),所以当扩展初始化时,我无法加载所有的字典文件,否则它会把事情搞砸
  • 我想在扩展的主目录中托管字典文件;而不是托管在外部的某个地方
  • 我可以将用户的语言选择存储在Chrome/storage中,但据我所知,JSON字典太大了,放不进去
    总而言之,我希望能够基于用户操作将本地托管的相当大的JSON数组(~5MB)动态加载到Chrome内容脚本中。在不遇到访问控制允许来源问题的情况下,最好的方法是什么

    您需要将JSON文件名添加到清单中:

    通过这种方式,您可以从任何内容脚本访问扩展名中的JSON文件


    您还可以在后台页面中加载文件(这样更好),并从内容脚本向后台页面发送消息,以从JSON获取特定数据。这样更好,因为您可以为所有选项卡加载一次JSON。

    非常感谢!特别感谢您将所选文件加载到后台脚本中;应该进一步提高性能。