我使用火狐扩展的browser.runtime.sendMessage API (Firefox54-64位),发送消息有从内容脚本到后台的大量二进制数据。
发送消息的速度非常慢,这使得火狐在3-5秒内没有响应,这取决于内容脚本发送的数据大小。然后它正常工作,后台接收消息。
上的铬sendMessage API工作速度快,非常平滑.
我如何在firefox中修复它?
browser.runtime.sendMessage(tab.id, { name: "sendScreen", data: { screen: screen} })对象中的屏幕值是二进制数据(长度为1135609的数组)。
在background.js中,我添加了侦听器消息:
browser.runtime.onMessage.addListener (message, sender, sendResponse);舱单档案:
{
"name": "abc",
"background": {
"page": "background.html"
},
"browser_action": {
"default_icon": "icons/icon_19.png",
"default_popup": "login.html",
},
"content_scripts": [
{
"web_accessible_resources": [
"js/contentscripts/Browser.js",
],
"js": [
"js/contentscripts/ContentScript.js"
],
"matches": [
"file://*/*",
"http://*/*",
"https://*/*"
],
"run_at": "document_end",
"all_frames": true
},
{
"js": [
"js/contentscripts/Browser.js",
],
"matches": [
"file://*/*",
"http://*/*",
"https://*/*"
],
"run_at": "document_start",
"all_frames": true
}
],
"icons": {
"16": "icons/icon_16.png",
"19": "icons/icon_19.png"
},
"incognito": "spanning",
"permissions": [
"activeTab",
"tabs",
"http://*/*",
"https://*/*",
"<all_urls>"
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}发布于 2017-06-30 01:58:36
如果上面提到的bug 1356546没有解决这个问题,那么创建一个新的firefox bug。
否则,您可以尝试拆分您的数据,正如评论中提到的,这不会减少整个时间,但它可能会减少对UX的影响,或者只是不支持Firefox,直到他们修复他们的was扩展错误。
https://stackoverflow.com/questions/44808926
复制相似问题