AjaxModule - Voliware/AjaxPlus GitHub Wiki
Give Me Data or Give Me Death
If your web app talks like this, it might need an AjaxModule
. This simple little module will make requests to the backend at a defined interval. It is easily extendable, and recommended to do so.
If used as a simple object, your app can listen to the same-named jQuery
AJAX events, done
, fail
, and always
.
var scoreboard = new AjaxModule({
request : Server.getLatestScores,
interval : 25000
})
.on('done', function(data){
app.updateScoreBoard(data);
})
.on('fail', function(){
app.showSyncError();
});
If extended as a class, take advantage of the built in callbacks and overridable data processing.
class ScoreBoard extends AjaxModule {
constructor(){
// instead of a defined request function,
// you could pass in options for $.ajax
super({
url : '/score/latest/',
data : {teams:'all'}
});
// renders the scores
this.displayBoard = new DisplayBoard();
return this;
}
// done callback
_done(data){
// data will always be processed by _cacheData and _processData
this.displayBoard.render(this._processedData);
}
_processData(data){
this._processedData = super._processData(data);
this._processedData.mapleLeafs += 2;
this._processedData.habs = 0;
return this;
}
}