Javascript Chrome扩展开发-使用本地数据库并在以后更新

Javascript Chrome扩展开发-使用本地数据库并在以后更新,javascript,json,database,google-chrome,google-chrome-extension,Javascript,Json,Database,Google Chrome,Google Chrome Extension,我是Chrome扩展开发的初学者。我做过一些有用的项目,但从未将数据库用于我的Chrome扩展。所以我决定为妈妈创建一个项目,让她可以轻松访问一些网站 基本上,我的本地数据库(将包含在我的Chrome扩展中)的数据格式如下: title | category | description | url Google | Search Engine | Use this to search | http://www.google.com Gmail | Email | Use this to vie

我是Chrome扩展开发的初学者。我做过一些有用的项目,但从未将数据库用于我的Chrome扩展。所以我决定为妈妈创建一个项目,让她可以轻松访问一些网站

基本上,我的本地数据库(将包含在我的Chrome扩展中)的数据格式如下:

title | category | description | url

Google | Search Engine | Use this to search | http://www.google.com
Gmail | Email | Use this to view or send emails | http://www.gmail.com
Youtube | Videos | Use this to view videos or watch movies | http://www.youtube.com
......
记录的数量将在200到500之间

我要做的是,当一个新的选项卡/窗口打开时,让我的扩展加载一个自定义主页。在主页上,会有一个搜索框。在这里,我妈妈可以键入一些文本,如
电子邮件
,它将过滤掉与该关键字匹配的项目(从上面的数据库中)

最初,我考虑将上述数据存储在一个JSON文件中,并将其用作数据库。因为没有通过我的Chrome扩展插入或更新记录。只进行查询和显示。此外,我计划编写代码ping我的Web服务器,以检查是否有任何新的db可用,如果有,请下载并使用它

我面临的问题是:

  • 如果我使用JSON文件作为我的数据库,有没有更好的方法来执行查询,而不是遍历项目,并对每个项目执行Javascript
    indexOf()
    ,以检查它是否具有查询的项目
  • 同样,如果我使用JSON文件作为我的数据库,我如何从服务器下载新更新的JSON并保存它来替换我的本地JSON文件?我认为
    chrome.downloads
    API不允许这样做

或者您有更好的建议吗?

在安装/更新时阅读JSON,并将其写入chrome.storage或IndexedDB,然后使用它。@wOxxOm谢谢。如果我要使用
chrome.storage
,我应该像
chrome.storage.local.set({'my_db':myJSONdata},function(){})那样将整个文件存储在一个键中
和以后需要时,检索它,然后遍历它以查找匹配条件并执行必要的操作。我说的对吗?是的,这是一种可能的方法。@wOxxOm谢谢。您认为查询的迭代方式会消耗资源吗,或者在我的例子中,对于200到500条记录来说,它可以忽略不计?Google Chrome已经是一款资源匮乏的浏览器。或者您对查询的性能有什么建议?只是问一下,这样我就可以最终完成JSON和chrome.storageDependes的开发。对于任何与性能相关的问题,请使用devtools探查器并手动测量运行时间。如果您不喜欢结果,请切换到IndexedDB。