Ajax Manager 의 실현

3970 단어 Xmanager
NeralJS 사고방식 정리 1 장 에서 우 리 는 실 용적 인 aax 관리 모듈 이 aax 요청 을 제어 하여 aax 요청 수량 을 줄 이 고 로 딩 을 최적화 하 는 것 을 언급 한 적 이 있다. 다음은 aax 모듈 의 실현 이다. 나 는 경험 이 간단 함 을 확보 했다.
/**

 * 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 모듈 기능 의 한계 적 인 영향 을 받 았 지만 웹 페이지 에 있어 모든 되 돌아 오 는 데 이 터 는 원래 표시 되 어야 하기 때문에 안전성 에 문제 가 존재 하지 않 습 니 다.잠시 사용 하기에 충분 하 다.

좋은 웹페이지 즐겨찾기