Zum Inhalt
Webworker
Aus ProgrammingWiki
Archivierte Version vom 2018-03-10T22:37:56+00:00.
Aktuelle Version
function InlineWorker(func, self) { var _this = this; var functionBody; var ticket = 0; self = self || {}; functionBody = func.toString().trim().match( /^function\s*\w*\s*\([\w\s,]*\)\s*{([\w\W]*?)}$/ )[1]; return new Worker(URL.createObjectURL( new Blob([ functionBody ], { type: "text/javascript" }) )); function postMessage(data) { setTimeout(function() { _this.onmessage({ data: data }); }, 0); } this.self = self; this.self.postMessage = postMessage; setTimeout(func.bind(self, self), 0); } InlineWorker.prototype.postMessage = function postMessage(data) { var _this = this; setTimeout(function() { _this.self.onmessage({ data: data }); }, 0); }; var JSONParseWorker = new InlineWorker(function(self) { self.onmessage = function(e) { var data = e.data; var json = JSON.parse( data ); postMessage(json); }; }); JSONParseWorker.onmessage = function(e) { alert(e.data.id + ":" + e.data.data); }; JSONParseWorker.postMessage('{"id":"123", "data":'+'{"name":"test"}'+'}');
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten