Ajaxer
/**
* @class Ajaxer
*/
var Ajaxer = (function() {
'use strict';
/**
* Identifier for an XHR 'Done' state
* @const XHR_STATE_DONE {Unsigned Integer}
*/
var XHR_STATE_DONE = 4;
/**
* @constructor
*/
function Ajaxer() {
}
/**
* @method get
* @param args {Object}:
* path {String}
* success {Function(message{String})|undefined}
* failure {Function(message{String})|undefined}
*/
Ajaxer.prototype.get = function(args) {
var xhr = new XMLHttpRequest();
// @type {Function()}
var handleSuccess = _handleSuccess;
// @type {Function()}
var handleFailure = _handleFailure;
//
xhr.addEventListener('readystatechange', readyStateChangeListener);
xhr.open('GET', args.path, true);
xhr.send();
//
function readyStateChangeListener() {
switch (xhr.readyState) {
case XHR_STATE_DONE:
xhr.status === 200? handleSuccess() : handleFailure();
break;
default:
break;
}
}
//
function _handleSuccess() {
args.success? args.success(xhr.responseText) : null;
}
function _handleFailure() {
args.failure? args.failure(xhr.responseText) : null;
}
};
return Ajaxer;
})();