github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/themes/wind/static/libs/sockjs-client-1.1.0/lib/transport/xhr-streaming.js (about)

     1  'use strict';
     2  
     3  var inherits = require('inherits')
     4    , AjaxBasedTransport = require('./lib/ajax-based')
     5    , XhrReceiver = require('./receiver/xhr')
     6    , XHRCorsObject = require('./sender/xhr-cors')
     7    , XHRLocalObject = require('./sender/xhr-local')
     8    , browser = require('../utils/browser')
     9    ;
    10  
    11  function XhrStreamingTransport(transUrl) {
    12    if (!XHRLocalObject.enabled && !XHRCorsObject.enabled) {
    13      throw new Error('Transport created when disabled');
    14    }
    15    AjaxBasedTransport.call(this, transUrl, '/xhr_streaming', XhrReceiver, XHRCorsObject);
    16  }
    17  
    18  inherits(XhrStreamingTransport, AjaxBasedTransport);
    19  
    20  XhrStreamingTransport.enabled = function(info) {
    21    if (info.nullOrigin) {
    22      return false;
    23    }
    24    // Opera doesn't support xhr-streaming #60
    25    // But it might be able to #92
    26    if (browser.isOpera()) {
    27      return false;
    28    }
    29  
    30    return XHRCorsObject.enabled;
    31  };
    32  
    33  XhrStreamingTransport.transportName = 'xhr-streaming';
    34  XhrStreamingTransport.roundTrips = 2; // preflight, ajax
    35  
    36  // Safari gets confused when a streaming ajax request is started
    37  // before onload. This causes the load indicator to spin indefinetely.
    38  // Only require body when used in a browser
    39  XhrStreamingTransport.needBody = !!global.document;
    40  
    41  module.exports = XhrStreamingTransport;