Parse response headers from XmlHttpRequest

Benchmark created by monsur on


Setup

var headers = 'Header1: Value1\r\nHeader2: Value2\r\nHeader3: Value3\r\nHeader4: Value4\r\nHeader5: Value5\r\nHeader6: Value6\r\nHeader7: Value7\r\nHeader8: Value8\r\nHeader9: Value9\r\nHeader0: Value0\r\n';

Test runner

Ready to run.

Testing in
TestOps/sec
Using unicode
function parseResponseHeaders(headerStr) {
  var headers = {};
  if (!headerStr) {
    return headers;
  }
  var headerPairs = headerStr.split('\u000d\u000a');
  for (var i = 0; i < headerPairs.length; i++) {
    var headerPair = headerPairs[i];
    var index = headerPair.indexOf('\u003a\u0020');
    if (index > 0) {
      var key = headerPair.substring(0, index);
      var val = headerPair.substring(index + 2);
      headers[key] = val;
    }
  }
  return headers;
}

parseResponseHeaders(headers);
ready
Caching length
function parseResponseHeaders(headerStr) {
  var headers = {};
  if (!headerStr) {
    return headers;
  }
  var headerPairs = headerStr.split('\u000d\u000a');
  for (var i = 0, ilen = headerPairs.length; i < ilen; i++) {
    var headerPair = headerPairs[i];
    var index = headerPair.indexOf('\u003a\u0020');
    if (index > 0) {
      var key = headerPair.substring(0, index);
      var val = headerPair.substring(index + 2);
      headers[key] = val;
    }
  }
  return headers;
}

parseResponseHeaders(headers);
ready
More improvements
function parseResponseHeaders(headerStr) {
  var headers = {};
  if (!headerStr) {
    return headers;
  }
  var headerPairs = headerStr.split('\u000d\u000a');
  for (var i = 0, ilen = headerPairs.length; i < ilen; i++) {
    var headerPair = headerPairs[i];
    var index = headerPair.indexOf('\u003a\u0020');
    if (index > 0) {
      headers[headerPair.substring(0, index)] = headerPair.substring(index + 2);
    }
  }
  return headers;
}

parseResponseHeaders(headers);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by monsur on