Ajax Manager 의 실현
3970 단어 Xmanager
/**
* Created by william on 2014/12/26.
*/
define(function () {
var events = require("EventBus");
function AjaxManager(serverURL) {
if (!serverURL || serverURL == "" || serverURL.length == 0)
throw "web ";
this.serverURL = serverURL;
this.request_list = [];
this.data_list = [];
}
/**
*
* @param requestInfo {uid: 'kb123',dataRange: { start: '2014/11/8', end: '2014/-1/-1' }}
*/
AjaxManager.prototype.addRequest = function (requestInfo) {
this.request_list.push(requestInfo);
};
/**
* , request_ready , data key:value
* @constructor
*/
AjaxManager.prototype.DoRequest = function () {
var self = this;
$.post(this.serverURL, this.request_list, function (data) {
for (var k in data) {
self.data_list[k] = data[k];
}
events.trigger(self, "request_ready", self.data_list);
});
this.request_list = [];// ,
};
/**
* Ajax , ajax
* @param callback
* @constructor
*/
AjaxManager.prototype.OnReady = function(callback){
events.addListener(this,"request_ready",callback);
};
});
위의 이 모듈 은 데이터 의 방향 푸 시 를 실현 할 수 없습니다. this. data 전 체 를list 는 모든 구독 자 에 게 개발 되 었 다.이것 도 EventBus 모듈 기능 의 한계 적 인 영향 을 받 았 지만 웹 페이지 에 있어 모든 되 돌아 오 는 데 이 터 는 원래 표시 되 어야 하기 때문에 안전성 에 문제 가 존재 하지 않 습 니 다.잠시 사용 하기에 충분 하 다.