ng-webworker - IE 11 错误
ng-webworker - IE 11 errors
所以我正在使用一个名为 ng-webworker 的库并尝试 运行 一个非常简单的长 运行ning 任务。
$scope.onParallelDownload = function() {
function doubler(num) {
return num * 2;
}
var myWorker = webWorker.create(doubler);
myWorker.run(3).then(function(result) {
alert("Answer: " + result);
}, function(error) {
var err = error;
});
}
这在 Chrome 中完美运行并显示警报,但是当 运行 在 Internet Explorer 11 中调试它时,错误函数被命中,这仍然很有希望,但是,那里错误负载中没有给出数据,这是有问题的,因为我完全不知道是什么导致网络工作者在特定浏览器上失败。
很可能您没有设置文件 worker_wrapper.min.js
(或 worker_wrapper.js
)的路径。 IE 需要此文件(见下文)。将您的应用配置调整为以下内容:
angular.module('myApp', [
// your dependencies
'ngWebworker'
])
.config(['WebworkerProvider', function (WebworkerProvider) {
WebworkerProvider.setHelperPath("./bower_components/ng-webworker/src/worker_wrapper.min.js"); // adjust path
}]);
此代码假定您使用 bower 安装了 ngWebworker。您可能仍然需要调整路径,具体取决于您所在的路径。
如果你已经设置了辅助路径,但它仍然不起作用,请检查开发者工具中是否正在加载辅助文件(你可能设置了错误的路径并得到 404)。
详情
当将函数传递给 Webworker 时,它会将此函数转换为一个 blob,然后由 Web worker 执行,就好像它是一个独立的文件一样。但是,Internet Explorer 将这些 blob 视为跨域,因此这不起作用。 ngWebworker 使用的解决方法是 运行 一个独立的 JavaScript 文件(我们上面设置的 worker_wrapper.min.js
)。 Web worker 然后 运行s 该文件,ngWebworker 将您的字符串化函数传递给对其进行评估的 worker。
请注意,如果您使用的不是 IE,则不会使用此文件。
所以我正在使用一个名为 ng-webworker 的库并尝试 运行 一个非常简单的长 运行ning 任务。
$scope.onParallelDownload = function() {
function doubler(num) {
return num * 2;
}
var myWorker = webWorker.create(doubler);
myWorker.run(3).then(function(result) {
alert("Answer: " + result);
}, function(error) {
var err = error;
});
}
这在 Chrome 中完美运行并显示警报,但是当 运行 在 Internet Explorer 11 中调试它时,错误函数被命中,这仍然很有希望,但是,那里错误负载中没有给出数据,这是有问题的,因为我完全不知道是什么导致网络工作者在特定浏览器上失败。
很可能您没有设置文件 worker_wrapper.min.js
(或 worker_wrapper.js
)的路径。 IE 需要此文件(见下文)。将您的应用配置调整为以下内容:
angular.module('myApp', [
// your dependencies
'ngWebworker'
])
.config(['WebworkerProvider', function (WebworkerProvider) {
WebworkerProvider.setHelperPath("./bower_components/ng-webworker/src/worker_wrapper.min.js"); // adjust path
}]);
此代码假定您使用 bower 安装了 ngWebworker。您可能仍然需要调整路径,具体取决于您所在的路径。
如果你已经设置了辅助路径,但它仍然不起作用,请检查开发者工具中是否正在加载辅助文件(你可能设置了错误的路径并得到 404)。
详情
当将函数传递给 Webworker 时,它会将此函数转换为一个 blob,然后由 Web worker 执行,就好像它是一个独立的文件一样。但是,Internet Explorer 将这些 blob 视为跨域,因此这不起作用。 ngWebworker 使用的解决方法是 运行 一个独立的 JavaScript 文件(我们上面设置的 worker_wrapper.min.js
)。 Web worker 然后 运行s 该文件,ngWebworker 将您的字符串化函数传递给对其进行评估的 worker。
请注意,如果您使用的不是 IE,则不会使用此文件。