Zum Inhalt
Webworker
Aus ProgrammingWiki
Archivierte Version vom 2018-03-10T22:27:09+00:00.
Aktuelle Version
var WORKER_ENABLED = !!(global === global.window && global.URL && global.Blob && global.Worker); function InlineWorker(func, self) { var _this = this; var functionBody; var ticket = 0; self = self || {}; if (WORKER_ENABLED) { functionBody = func.toString().trim().match( /^function\s*\w*\s*\([\w\s,]*\)\s*{([\w\W]*?)}$/ )[1]; return new global.Worker(global.URL.createObjectURL( new global.Blob([ functionBody ], { type: "text/javascript" }) )); } function postMessage(data, callback) { setTimeout(function() { _this.onmessage({ data: data, callback:callback }); }, 0); } this.self = self; this.self.postMessage = postMessage; setTimeout(func.bind(self, self), 0); } InlineWorker.prototype.parse = function parse(data,callback) { var _this = this; setTimeout(function() { _this.self.onmessage({ data: data, callback:callback }); }, 0); }; var JSONParseWorker = new InlineWorker(function(self) { self.onmessage = function(e) { var data = e.data; var json = JSON.parse( data ); postMessage(json,e.callback); }; }); JSONParseWorker.onmessage = function(e,callback) { if(callback) callback(e.data); }; JSONParseWorker.parse('{"name":"test"}',function(obj){ console.log(obj); });
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