function (options) {
    var key;
    var data = {};
    var xhr  = PUSH.xhr;

    options.container = options.container || options.transition ? document.querySelector('.content') : document.body;

    for (key in bars) {
      options[key] = options[key] || document.querySelector(bars[key]);
    }

    if (xhr && xhr.readyState < 4) {
      xhr.onreadystatechange = noop;
      xhr.abort()
    }

    xhr = new XMLHttpRequest();
    xhr.open('GET', options.url, true);
    xhr.setRequestHeader('X-PUSH', 'true');

    xhr.onreadystatechange = function () {
      if (options._timeout) clearTimeout(options._timeout);
      if (xhr.readyState == 4) xhr.status == 200 ? success(xhr, options) : failure(options.url);
    };

    if (!PUSH.id) {
      cacheReplace({
        id         : +new Date,
        url        : window.location.href,
        title      : document.title,
        timeout    : options.timeout,
        transition : null
      });
    }

    if (options.timeout) {
      options._timeout = setTimeout(function () {  xhr.abort('timeout'); }, options.timeout);
    }

    xhr.send();

    if (xhr.readyState && !options.ignorePush) cachePush();
  }
function (options) {
    var key;
    var data = {};
    var xhr  = PUSH.xhr;

    options.container = options.container || options.transition ? document.querySelector('.content') : document.body;

    for (key in bars) {
      options[key] = options[key] || document.querySelector(bars[key]);
    }

    if (xhr && xhr.readyState < 4) {
      xhr.onreadystatechange = noop;
      xhr.abort()
    }

    xhr = new XMLHttpRequest();
    xhr.open('GET', options.url, true);
    xhr.setRequestHeader('X-PUSH', 'true');

    xhr.onreadystatechange = function () {
      if (options._timeout) clearTimeout(options._timeout);
      if (xhr.readyState == 4) xhr.status == 200 ? success(xhr, options) : failure(options.url);
    };

    if (!PUSH.id) {
      cacheReplace({
        id         : +new Date,
        url        : window.location.href,
        title      : document.title,
        timeout    : options.timeout,
        transition : null
      });
    }

    if (options.timeout) {
      options._timeout = setTimeout(function () {  xhr.abort('timeout'); }, options.timeout);
    }

    xhr.send();

    if (xhr.readyState && !options.ignorePush) cachePush();
  }
function ( options ) { var key ; var data = { } ; var xhr = PUSH . xhr ; options . container = options . container || options . transition ? document . querySelector ( '.content' ) : document . body ; for ( key in bars ) { options [ key ] = options [ key ] || document . querySelector ( bars [ key ] ) ; } if ( xhr && xhr . readyState < 4 ) { xhr . onreadystatechange = noop ; xhr . abort ( ) } xhr = new XMLHttpRequest ( ) ; xhr . open ( 'GET' , options . url , true ) ; xhr . setRequestHeader ( 'X-PUSH' , 'true' ) ; xhr . onreadystatechange = function ( ) { if ( options . _timeout ) clearTimeout ( options . _timeout ) ; if ( xhr . readyState == 4 ) xhr . status == 200 ? success ( xhr , options ) : failure ( options . url ) ; } ; if ( ! PUSH . id ) { cacheReplace ( { id : + new Date , url : window . location . href , title : document . title , timeout : options . timeout , transition : null } ) ; } if ( options . timeout ) { options . _timeout = setTimeout ( function ( ) { xhr . abort ( 'timeout' ) ; } , options . timeout ) ; } xhr . send ( ) ; if ( xhr . readyState && ! options . ignorePush ) cachePush ( ) ; }
Core PUSH functionality =======================
Core PUSH functionality =======================