| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | <!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>The source code</title>  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>  <style type="text/css">    .highlight { display: block; background-color: #ddd; }  </style>  <script type="text/javascript">    function highlight() {      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";    }  </script></head><body onload="prettyPrint(); highlight();">  <pre class="prettyprint lang-js"><span id='Ext-ux-ajax-SimXhr'>/**</span> * @author Don Griffin * * Simulates an XMLHttpRequest object's methods and properties but is backed by a * {@link Ext.ux.ajax.Simlet} instance that provides the data. */Ext.define('Ext.ux.ajax.SimXhr', {    readyState: 0,    mgr: null,    simlet: null,    constructor: function (config) {        var me = this;        Ext.apply(me, config);        me.requestHeaders = {};    },    abort: function () {        var me = this;        if (me.timer) {            clearTimeout(me.timer);            me.timer = null;        }        me.aborted = true;    },    getAllResponseHeaders: function () {        var headers = [];        Ext.Object.each(this.responseHeaders, function (name, value) {            headers.push(name + ': ' + value);        });        return headers.join('\x0d\x0a');    },    getResponseHeader: function (header) {        var headers = this.responseHeaders;        return (headers && headers[header]) || null;    },    open: function (method, url, async, user, password) {        var me = this;        me.method = method;        me.url = url;        me.async = async !== false;        me.user = user;        me.password = password;        me.setReadyState(1);    },    overrideMimeType: function (mimeType) {        this.mimeType = mimeType;    },    schedule: function () {        var me = this;        me.timer = setTimeout(function () {            me.onTick();        }, me.mgr.delay);    },    send: function (body) {        var me = this;        me.body = body;        if (me.async) {            me.schedule();        } else {            me.onComplete();        }    },    setReadyState: function (state) {        var me = this;        if (me.readyState != state) {            me.readyState = state;            me.onreadystatechange();        }    },    setRequestHeader: function (header, value) {        this.requestHeaders[header] = value;    },    // handlers    onreadystatechange: Ext.emptyFn,    onComplete: function () {        var me = this,            callback;        me.readyState = 4;        Ext.apply(me, me.simlet.exec(me));        callback = me.jsonpCallback;        if (callback) {            var text = callback + '(' + me.responseText + ')';            eval(text);        }    },    onTick: function () {        var me = this;        me.timer = null;        me.onComplete();        me.onreadystatechange();    }});</pre></body></html>
 |