Im próbuje utworzyć Pracownicy internetowych i wysyłać wiadomości do nich w cyklu:Czy istnieje limit pracowników Firefoksa?
array.forEach(function (data) {
this.createWorker();
this.workers[this.workersPointer].postMessage({task: 'someTask', data: string});
}, this);
funkcja createWorker: Kod
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);
};
}
Pracownik:
self.addEventListener('message', function (event) {
self.postMessage({
data: data,
error: err,
task: event.data.task
});
}, false);
Działa doskonale w Google Chrome. Kiedy próbuję uruchomić go w Firefoksie, działa tylko 20 razy. Czy pracownicy przeglądarki Firefox mają limit? Nie mogę znaleźć informacji na ten temat na mozilla.org. Jeśli nie ma limitu, jaki jest problem? Jakieś pomysły?
Po prostu zastanawiam się, dlaczego nie znalazłem nic w Google z zapytaniem "limit pracowników sieci firefox" ... I dlaczego nie ma komunikatów o błędach w Firefoksie i Chrome. –
Oto zgłoszenie błędu w chromie: http://code.google.com/p/chromium/issues/detail?id=37518 – Alex
Nie ma komunikatu o błędzie, ponieważ jeśli utworzysz więcej pracowników niż limit, po prostu dostaną się do kolejki do uruchomienia. Limit dotyczy jednocześnie pracowników, a nie pracowników ogółem. Jeśli konfigurowałeś pracowników, którzy faktycznie zakończyli pracę w pewnym momencie, zobaczysz, że kolejki zaczynają działać. Ale próbujesz skonfigurować 200 pracowników z nieskończonym życiem ... –