Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的Firefox扩展加载缓慢-适用于所有ChromeWindow_Javascript_Firefox_Firefox Addon_Firefox Addon Sdk - Fatal编程技术网

Javascript 我的Firefox扩展加载缓慢-适用于所有ChromeWindow

Javascript 我的Firefox扩展加载缓慢-适用于所有ChromeWindow,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我有一个自己创建的Firefox插件,它们慢慢打开,但问题是一般性的 检查加载速度有多慢: 对于每个浏览器窗口的循环数组: var { viewFor } = require("sdk/view/core"); var windows = require("sdk/windows"); var browserWindows = windows.browserWindows; for (let browserWindow of browserWindows) { let chromeW

我有一个自己创建的Firefox插件,它们慢慢打开,但问题是一般性的

检查加载速度有多慢:

对于每个
浏览器窗口的
循环
数组:

var { viewFor } = require("sdk/view/core");
var windows = require("sdk/windows");

var browserWindows = windows.browserWindows;
for (let browserWindow of browserWindows) {
    let chromeWindow = viewFor(browserWindow);
    module.enable(chromeWindow);
}
然后对于新打开的窗口:

browserWindows.on('open', function(browserWindow) {
    var chromeWindow = viewFor(browserWindow);
    module.enable(chromeWindow);
});
并为同一阵列上的每个浏览器窗口禁用
循环:

var browserWindows = windows.browserWindows;
for (let browserWindow of browserWindows) {
    let chromeWindow = viewFor(browserWindow);
    module.disable(chromeWindow);
}
在我看来,在这些函数中,windows加载程序是一个问题。 因为他加了这样一个东西,在转弯时不应该粘糊糊的,例如:

var style = require("sdk/stylesheet/utils");
var self = require("sdk/self");
function enable (window) {
    style.loadSheet(window, self.data.url("toolbars/tabs.css"), "author");
    style.loadSheet(window, self.data.url("toolbars/navigator.css"), "author");
    style.loadSheet(window, self.data.url("toolbars/other-toolbars.css"), "author");
}

 function disable (window) {
    style.removeSheet(window, self.data.url("toolbars/tabs.css"), "author");
    style.removeSheet(window, self.data.url("toolbars/navigator.css"), "author");
    style.removeSheet(window, self.data.url("toolbars/other-toolbars.css"), "author");
}

如何更有效地执行此操作,而不是让收费变得混乱?

可能会插入脚本,而不是手动上传窗口。加载时的脚本通过消息传递与主index.js对话。我知道我在将数组缓冲区从bootstrap.js复制到windows时遇到问题。这是因为它们的脚本范围不同。所以我现在通过postMessage进行传输。它工作得非常好。可能会插入一个脚本,而不是手动上传窗口。加载时的脚本通过消息传递与主index.js对话。我知道我在将数组缓冲区从bootstrap.js复制到windows时遇到问题。这是因为它们的脚本范围不同。所以我现在通过postMessage进行传输。它工作得很好。