<!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', {
|
<span id='Ext-ux-ajax-SimXhr-property-readyState'> readyState: 0,
|
</span>
|
<span id='Ext-ux-ajax-SimXhr-property-mgr'> mgr: null,
|
</span><span id='Ext-ux-ajax-SimXhr-property-simlet'> simlet: null,
|
</span>
|
<span id='Ext-ux-ajax-SimXhr-method-constructor'> constructor: function (config) {
|
</span> var me = this;
|
|
Ext.apply(me, config);
|
me.requestHeaders = {};
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-abort'> abort: function () {
|
</span> var me = this;
|
|
if (me.timer) {
|
clearTimeout(me.timer);
|
me.timer = null;
|
}
|
me.aborted = true;
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-getAllResponseHeaders'> getAllResponseHeaders: function () {
|
</span> var headers = [];
|
Ext.Object.each(this.responseHeaders, function (name, value) {
|
headers.push(name + ': ' + value);
|
});
|
return headers.join('\x0d\x0a');
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-getResponseHeader'> getResponseHeader: function (header) {
|
</span> var headers = this.responseHeaders;
|
return (headers && headers[header]) || null;
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-open'> open: function (method, url, async, user, password) {
|
</span> var me = this;
|
me.method = method;
|
me.url = url;
|
me.async = async !== false;
|
me.user = user;
|
me.password = password;
|
|
me.setReadyState(1);
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-overrideMimeType'> overrideMimeType: function (mimeType) {
|
</span> this.mimeType = mimeType;
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-schedule'> schedule: function () {
|
</span> var me = this;
|
me.timer = setTimeout(function () {
|
me.onTick();
|
}, me.mgr.delay);
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-send'> send: function (body) {
|
</span> var me = this;
|
|
me.body = body;
|
|
if (me.async) {
|
me.schedule();
|
} else {
|
me.onComplete();
|
}
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-setReadyState'> setReadyState: function (state) {
|
</span> var me = this;
|
if (me.readyState != state) {
|
me.readyState = state;
|
me.onreadystatechange();
|
}
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-setRequestHeader'> setRequestHeader: function (header, value) {
|
</span> this.requestHeaders[header] = value;
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-onreadystatechange'> // handlers
|
</span>
|
onreadystatechange: Ext.emptyFn,
|
|
<span id='Ext-ux-ajax-SimXhr-method-onComplete'> onComplete: function () {
|
</span> 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);
|
}
|
},
|
|
<span id='Ext-ux-ajax-SimXhr-method-onTick'> onTick: function () {
|
</span> var me = this;
|
|
me.timer = null;
|
me.onComplete();
|
me.onreadystatechange && me.onreadystatechange();
|
}
|
});
|
</pre>
|
</body>
|
</html>
|