JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 是否存在Firefox Worker限制?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图创建Web Workers并在周期中向他们发布消息:
array.forEach(function (data) {
        this.createWorker();
        this.workers[this.workersPointer].postmessage({task: 'someTask',data: String});
    },this);

createWorker函数:

createWorker: function () {
    this.workersPointer++;
    var worker = this.workers[this.workersPointer] = new Worker('Worker.js'),storage = this;
    worker.onmessage = function (event) {
        if (event.data.error) {
            storage[event.data.task + 'ErrBACk'](event.data.error);
        }
        else {
            storage[event.data.task + 'CallBACk'](event.data.data);
        }
    };
    worker.onerror = function (error) {
        storage.workerErrBACk(error);
    };
}

工人代码:

self.addEventListener('message',function (event) {
self.postmessage({
    data: data,error: err,task: event.data.task
});

},falsE);

它在Google Chrome中完美运行.当我尝试在Firefox中运行它时,它只能运行20次. Firefox网络工作者有限制吗?我在mozilla.org上找不到有关它的信息.如果没有限制,问题是什么?有任何想法吗?

解决方法

做了一些我自己的测试.为此,我改变了一点代码:

周期:

for(var i=0;i<200;i++){
   this.createWorker();
   this.workers[this.workersPointer].postmessage({task: 'someTask',number:i});
};

createWorker函数:

this.workers =[];
this.workersPointer = 0;
storage=[];


var createWorker= function () {
    workersPointer++;
    var myPointer = workersPointer;
    var worker = this.workers[this.workersPointer] = new Worker('Worker.js');

    worker.onmessage = function (event) {
        if (event.data.error) {
            alert(event.data.error);
        }
        else {
            document.cookie=event.data.task+"["+myPointer+"]="+event.data.number;
        }
    };
    worker.onerror = function (event) {
        alert("Error: " + event.error);
    };
}

工人:

onmessage = function(event) {
    postmessage({number:event.data.number*2,task: event.data.task});
};

在我运行之后,在chrome中我有66个cookie(包括一个漂亮的蓝色崩溃窗口),在firefox中我得到了20个.所以这两个浏览器似乎都有工作者限制.

编辑:

在Opera中我得到一个控制台消息:

此窗口超出了最大Web Worker实例数(16).

大佬总结

以上是大佬教程为你收集整理的javascript – 是否存在Firefox Worker限制?全部内容,希望文章能够帮你解决javascript – 是否存在Firefox Worker限制?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。