Shared worker template

by Darker

HTML

<h1>
<tt>SharedWorker</tt> basic template
</h1>

JavaScript

function workerFN() {
  function onmessage(e) {
    switch(e.data.name) {
      case "" : 

      break;
      default:
        console.error("Unknown message:", e.data.name);
    }
  }
  self.onconnect = function(e) {
      for(var i=0,l=e.ports.length; i<l; i++) {
        e.ports[i].addEventListener('message', onmessage);
        e.ports[i].start(); // Required when using addEventListener. Otherwise called implicitly by onmessage setter.
      }
  }
}
// This is a trick to generate real worker script that is loaded from server
var url = "/echo/js/?js="+encodeURIComponent("("+workerFN.toString()+")()");
var worker = new SharedWorker(url);
worker.port.start();
worker.port.addEventListener("message", function(e) {
  switch(e.data.name) {
    case "" : 

    break;
    default:
      console.error("Unknown message:", e.data.name);
  }
})