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

时间:2013-06-17 03:28:37

标签: javascript ajax json google-chrome getjson

我正在试图找出将一系列语言词典文件(英语,法语等)动态加载到Chrome扩展程序的最佳方法。我正在处理的限制因素:

  1. 我正在运行一个内容脚本来控制基于手势识别设备(LEAP)的浏览器操作,因此它始终在活动选项卡中运行。
  2. 用户可以通过一系列手势选择不同的语言来打开菜单页面并选择新语言。
  3. 每个字典文件都很大(~5MB),并且有很多(25 +),所以当扩展程序初始化或者它确实堵塞时,我无法加载它们。
  4. 我想在扩展程序的主目录中托管字典文件;而不是在外部托管。
  5. 我可以将用户的语言选择存储在Chrome /存储中,但据我所知,JSON词典太大了,无法放入其中。
  6. 总而言之,我希望能够根据用户操作将本地托管的,相当大的JSON数组(~5MB)动态加载到Chrome内容脚本中。如果没有遇到Access-Control-Allow-Origin问题,最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要将JSON文件名添加到清单:http://developer.chrome.com/extensions/manifest.html#web_accessible_resources

这样您就可以从任何内容脚本访问扩展中的JSON文件。

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