title: setTimeout(0) vs window.postMessage vs MessagePort.postMessage
body: <p>Apparently, using <a href="http://msdn.microsoft.com/en-us/library/ie/cc197015%28v=vs.85%29.aspx" rel="noreferrer">window.postMessage</a> is a <a href="http://dbaron.org/log/20100309-faster-timeouts" rel="noreferrer">preferred way</a> to queue an async javascript callback over <code>window.setTimeout(fn, 0)</code> across all modern browsers. I could not find a similar comparison between <a href="http://msdn.microsoft.com/en-us/library/ie/cc197015%28v=vs.85%29.aspx" rel="noreferrer">window.postMessage</a> and <a href="http://msdn.microsoft.com/en-us/library/ie/jj160614%28v=vs.85%29.aspx" rel="noreferrer">MessagePort.postMessage</a> (using the same <a href="http://msdn.microsoft.com/en-us/library/ie/hh772432%28v=vs.85%29.aspx" rel="noreferrer">MessageChannel</a> for sending and receiving messages asynchronously). Has anyone seen or done any timing? Does <a href="http://msdn.microsoft.com/en-us/library/ie/jj160614%28v=vs.85%29.aspx" rel="noreferrer">MessagePort.postMessage</a> work for this purpose at all (where available)?</p>
  
  <p><strong>[EDITED]</strong> <code>MessagePort.postMessage</code> does work for this, but <code>window.postMessage</code> remains a preffered way, IMO (see my answer).</p>