Javascript 检索Google Chrome扩展ID的最佳方式是什么?
我知道两种获取Google Chrome扩展ID的方法:Javascript 检索Google Chrome扩展ID的最佳方式是什么?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我知道两种获取Google Chrome扩展ID的方法: chrome.app.getDetails().id; chrome.i18n.getMessage('@@extension_id'); 其中一个有什么缺点吗 我倾向于使用第一个,因为它比较短,但谁知道呢。我可能错了 ----编辑--- 因为我是唯一关心这些的人,以下是我所做的工作: 控制台时间('t1'); 对于(var i=0;i
chrome.app.getDetails().id;
chrome.i18n.getMessage('@@extension_id');
其中一个有什么缺点吗
我倾向于使用第一个,因为它比较短,但谁知道呢。我可能错了
----编辑---
因为我是唯一关心这些的人,以下是我所做的工作:
控制台时间('t1');
对于(var i=0;i<10000;i++){chrome.app.getDetails().id;};
控制台。时间结束('t1');
控制台时间('t2');
对于(var i=0;i<10000;i++){chrome.i18n.getMessage('@@extension_id');};
控制台。时间结束('t2');
结果如下:
t1:5190.766ms
t2:860.697ms
看起来使用i18n总体上要快得多,但第一个在开始时更快,在执行3或4次后,i18n更好。尝试执行类似的查询: 在那里,您可以更广泛地了解您正在使用的第一个呼叫
chrome.app.getDetails().id;
最后,我创建了一个小的Chrome扩展,以基准测试三种检索Chrome扩展ID的已知方法:
chrome.app.getDetails().id代码>
chrome.i18n.getMessage('@@extension\u id')代码>
chrome.extension.getURL('/').slice(19,-1)代码>
chrome.runtime.id代码>
chrome.extension.getURL('/').slice(19,-1)
似乎总体上花费的时间较少,但第一次调用与其他调用相当。
正如我们所看到的,chrome.runtime.id
获胜
注意#1:您可以下载扩展的zip存档
注意#2:我使用performance.now()
来获得准确的计时
注#3:我在基准工具中添加了
chrome.runtime.id
。谢谢康斯坦丁·斯莫莱宁 似乎由于chrome 22,获取扩展ID的最佳方法是内置属性chrome.runtime.ID
谢谢你的回答。你是说使用chrome.app.getDetails()是不好的,因为作用域太大了?@Francois…不,这是我说的方式,你可以在阅读链接后了解其他内容。:)
console.log(chrome.runtime.id);