我已经构建了一个非常简单的chrome扩展,只需在单击时在新选项卡中打开一个URL(通过使用页面当前URL的简短JS功能)。它在后台没有做任何事情。
使用大约20mb的内存是否正常?可以采取任何措施来减少使用的内存量吗?
这是background.js代码:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(tab.id, {file: "bookmarklet.js"})
});
答案 0 :(得分:2)
轻量级Chrome扩展程序通常使用10-20 MB的内存。
话虽如此,我建议使用以下清单文件来最小化内存使用并尽量减少权限的使用:
{
"name": "Name of your extension",
"version": "1.0",
"manifest_version": 2,
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Your badge title here (optional)",
"default_icon": "icon19.png"
},
"permissions": [
"activeTab"
],
"minimum_chrome_version": "26"
}
如果您愿意,还可以添加icons
和description
字段以提供额外的元数据。
使用"persistent": "false"
,您已将background page变为event page。事件页面仅在需要时激活,例如单击按钮时。如果不需要,页面会自动卸载,导致无法使用内存。
我猜您已使用"tabs"
和"<all_urls>"
或"*://*/*"
权限。对于您的用例,只需删除这些权限并使用activeTab
即可,当单击该按钮时,授予扩展名临时访问选项卡的权限。自Chrome 26以来就可以使用此功能。