assets/live.js
function (url, callback) {
      pendingRequests[url] = true;
      var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XmlHttp");
      xhr.open("HEAD", url, true);
      xhr.onreadystatechange = function () {
        delete pendingRequests[url];
        if (xhr.readyState == 4 && xhr.status != 304) {
          xhr.getAllResponseHeaders();
          var info = {};
          for (var h in headers) {
            var value = xhr.getResponseHeader(h);
            // adjust the simple Etag variant to match on its significant part
            if (h.toLowerCase() == "etag" && value) value = value.replace(/^W\//, '');
            if (h.toLowerCase() == "content-type" && value) value = value.replace(/^(.*?);.*?$/i, "$1");
            info[h] = value;
          }
          callback(url, info);
        }
      }
      xhr.send();
    }
function (url, callback) {
      pendingRequests[url] = true;
      var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XmlHttp");
      xhr.open("HEAD", url, true);
      xhr.onreadystatechange = function () {
        delete pendingRequests[url];
        if (xhr.readyState == 4 && xhr.status != 304) {
          xhr.getAllResponseHeaders();
          var info = {};
          for (var h in headers) {
            var value = xhr.getResponseHeader(h);
            // adjust the simple Etag variant to match on its significant part
            if (h.toLowerCase() == "etag" && value) value = value.replace(/^W\//, '');
            if (h.toLowerCase() == "content-type" && value) value = value.replace(/^(.*?);.*?$/i, "$1");
            info[h] = value;
          }
          callback(url, info);
        }
      }
      xhr.send();
    }
function ( url , callback ) { pendingRequests [ url ] = true ; var xhr = window . XMLHttpRequest ? new XMLHttpRequest ( ) : new ActiveXObject ( "Microsoft.XmlHttp" ) ; xhr . open ( "HEAD" , url , true ) ; xhr . onreadystatechange = function ( ) { delete pendingRequests [ url ] ; if ( xhr . readyState == 4 && xhr . status != 304 ) { xhr . getAllResponseHeaders ( ) ; var info = { } ; for ( var h in headers ) { var value = xhr . getResponseHeader ( h ) ; // adjust the simple Etag variant to match on its significant part
 if ( h . toLowerCase ( ) == "etag" && value ) value = value . replace ( / ^W\/ / , '' ) ; if ( h . toLowerCase ( ) == "content-type" && value ) value = value . replace ( / ^(.*?);.*?$ / i , "$1" ) ; info [ h ] = value ; } callback ( url , info ) ; } } xhr . send ( ) ; }
performs a HEAD request and passes the header info to the given callback
performs a HEAD request and passes the header info to the given callback