我们正在使用CrossRider开发Internet Explorer扩展。我在登台模式下测试了我们的扩展,在后台以及在appAPI.ready函数的extension.js中都有一个警报:

extension.js:

appAPI.ready(function($) {
    alert("appAPI.platform = " + appAPI.platform);
});


background.js:

appAPI.ready(function($) {
    alert("appAPI.platform = " + appAPI.platform);
});


我安装扩展程序后,extend.js中的警报立即发生,但是background.js中的警报仅在26秒后发生。为什么要花这么长时间?我们的扩展ID是43889。我还尝试了一个几乎不能执行任何操作的简单扩展(扩展ID为67708),并且两个警报都立即发生。有没有办法使我们的扩展程序中的后台加载速度更快?

我使用的是Internet Explorer 11,但此扩展程序应可用于所有版本的Internet Explorer。

最佳答案

如果每个浏览器都提供背景范围,那将是很好的选择,但是不幸的是IE没有。但是,我们竭尽全力使浏览器之间的代码行为尽可能相似,但是我们无法重新定义IE的体系结构。因此,对于IE,我们实现了自己的后台作用域,并且其部分初始化要求加载资源文件。

通常这不是问题,因为大多数扩展都是轻量级的,并且资源很少。但是,在您的情况下,由于扩展中有很多资源文件,因此这会延迟后台范围的初始加载,但是一旦加载,警报就会及时显示。因此,在没有资源的测试扩展中,会立即显示背景警报。

[披露:我是Crossrider员工]

09-11 20:09