title: IE8 hangs when more than 4 async XmlHttpRequests are triggered concurrently
body: <pre><code>for (var i = 0; i &lt; 5; ++i) {
    var xhr;
    if (window.XMLHttpRequest) {
      xhr = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    xhr.open('GET', '/Test/LongOperation?p=' + new Date());
    xhr.send('');
  }
  </code></pre>
  
  <p>This is only a demo (not live code) but it illustrates the core problem.
  <code>LongOperation</code> is a method that returns a result after 10 seconds.</p>
  
  <p>Questions:</p>
  
  <ol>
  <li><p>Why does IE8 (and maybe other IEs) hang when the user tries to navigate away from page right after the above code snippet has been executed? FireFox/Safari cancel these requests and allow navigation to another page. If you replace <code>'i &lt; 5'</code> with <code>'i &lt; 4'</code> then IE would not hang.</p></li>
  <li><p>How to work around this ugly IE behavior? Users are very upset when their browser suddenly hangs.</p></li>
  </ol>