- , " "....
, cdn, , new Worker('at.yourCDN.com/worker.js'). SharedWorker, . , , . , Service/Server.
:
Worker()/SHaredWorker(), .
, :
- SharedWorker(), CDN ://protocol.
- , iframe.
- iframe, - /iframe script DOM, , .
:
/, , myWindow.postMessage('my message'), myWindow port.postMessage(myMsg) .
, , , .
, "Forever Server" CORS, iframe-injection window.postMessageing.
.
************************************ EDIT ************************************
, , SharedWorker, , - SharedWorker . , , , FileReader API:
// DOM:
<b>1</b>
<input id="uploadImage" type="file" name="myPhoto" onchange="onSelect();" autofocus="true" />
<script>
var fReader = new FileReader();
fReader.onload = function(e){
var blob = new Blob([e.target.result], {type: 'text/javascript'});
var blobURL = URL.createObjectURL(blob);
var w = new SharedWorker(blobURL);
w.port.onmessage = function(e){
console.log('%%^', e);
};
w.port.start();
w.port.postMessage('Echo');
};
function onSelect(e){
var file = document.getElementById("uploadImage").files[0];
var dataURL = fReader.readAsText(file);
}
</script>
// DESKTOP:
var ports = ports || [];
self.onconnect = function(e){
var port = e.ports[0];
ports.push(port);
port.addEventListener('message', function(e){
port = e.target;
ports.forEach(function(p){
p.postMessage('gWorker:: ' + e.data);
});
}, false);
port.start();
};
:
CDN-Worker, , FileReader/BlobBuilder, "" worker object heap. , CORS, CORS XMLHttpRequest, new Worker('http://from.mycors.com/enabled/server') "DOM Exception 18" SecurityError, .
"Window-Proxy" (iframe.postMessage() iframe , window.onmessage ). : -, http, window.postMessage http.
, google-chrome --allow-file-access-from-files - .
- WebRTC, .
, .
,