<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BaSaRa 目前關心的是UI技術

    從ajax.cn摘錄下來的ajax設計模式,其實也是《ajax in action》的第三章主要內容:)

    //Facade模式實例
    var net=new Object();
    net.READY_STATE_UNINITIALIZED=0;
    net.READY_STATE_LOADING=1;
    net.READY_STATE_LOADED=2;
    net.READY_STATE_INTERACTIVE=3;
    net.READY_STATE_COMPLETE=4;
    net.ContentLoader=function(url,onload,onerror){
    this.url=url;
    this.req=null;
    this.onload=onload;
    this.onerror=(onerror) ? onerror : this.defaultError;
    this.loadXMLDoc(url);
    net.ContentLoader.prototype={
      loadXMLDoc:function(url){
        if (window.XMLHttpRequest){
          this.req=new XMLHttpRequest();
        } else if (window.ActiveXObject){
          this.req=new ActiveXObject("Microsoft.XMLHTTP");
        }
        if (this.req){
          try{
            var loader=this;
            this.req.onreadystatechange=function(){
            loader.onReadyState.call(loader);
          }
          this.req.open('GET',url,true);
          this.req.send(null);
          }catch (err){
            this.onerror.call(this);
          }
        }
      },
      onReadyState:function(){
        var req=this.req;
        var ready=req.readyState;
        if (ready==net.READY_STATE_COMPLETE){
          var httpStatus=req.status;
          if (httpStatus==200 || httpStatus==0){
            this.onload.call(this);
          }else{
            this.onerror.call(this);
          }
        }
      },
      defaultError:function(){
        alert("error fetching data!"
          +"\n\nreadyState:"+this.req.readyState
          +"\nstatus: "+this.req.status
          +"\nheaders: "+this.req.getAllResponseHeaders());
      }
    }

    //Adapter模式實例
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "myData.xml");
    xhr.onreadystatechange = function(){
      if(xhr.readyState == 4){
        alert(xhr.responseXML);
      }
    }
    xhr.send(null);


    //Observer模式實例
    window.onloadListeners=new Array();
      window.addOnLoadListener(listener){
      window.onloadListeners[window.onloadListeners.length]=listener;
    }

    window.onload=function(){
      for(var i=0;i<window.onloadListeners.length;i++){
        var func=window.onlloadListeners[i];
        func.call();
      }
    }

    //Singleton模式實例
    var SingletonObj = {
      property1: value1,
      property2: value2,
      ...
      method1:function(){
        ...
      }
      method2:function(){
        ...
      }
      ...
    }

    function getSingletonObj() {
      if(!top.SingletonObj) {
        var top.SingletonObj = {
          ...
        }
        top.SingletonObj.init(...);
      }
      return top.SingletonObj;
    }

    //Command模式實例
    function buttonOnclickHandler(event){
      var data=calculate();
      showData(dataTable,data);
    }
    function ajaxOnloadHandler(){
      var data=calculate();
      showData(otherDataTable,data);
    }
    function calculate(){
      var data=new Array();
      data[0]=6;
      data[1]=data[0]/3;
      data[2]=data[0]*data[1]+7;
      return data;
    }
    function showData(table,data){
      var newRow=createTableRow(table);
      for (var i=0;i<data.length;i++){
        createTableCell(newRow,data[i]);
      }
    }
    buttonDiv.onclick=buttonOnclickHandler;
    poller.onload=ajaxOnloadHandler;

    //MVC應用實例
    function Button(value,domEl){
      this.domEl=domEl;
      this.value=value;
      this.domEl.buttonObj=this;
      this.domEl.onclick=this.clickHandler;
    }

    Button.prototype.clickHandler=function(){
      var buttonObj=this.buttonObj;
      var value=(buttonObj && buttonObj.value) ?
        buttonObj.value : "unknown value";
      alert(value);
    }

    posted on 2006-06-09 09:20 BaSaRa 閱讀(404) 評論(0)  編輯  收藏 所屬分類: Javascript

    My Links

    Blog Stats

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲综合久久1区2区3区| 久久久久久久久久国产精品免费| 一本色道久久88亚洲综合| 亚洲亚洲人成综合网络| 亚洲成人免费网站| 最好看最新的中文字幕免费| 一区国严二区亚洲三区| 国产AV日韩A∨亚洲AV电影 | 亚洲国产激情一区二区三区| 一级女性全黄生活片免费看| 亚洲视频在线精品| 国产免费无码一区二区| 亚洲色成人网一二三区| 青草青草视频2免费观看| 日日麻批免费40分钟无码| 久久精品国产亚洲77777| 色吊丝性永久免费看码| 国产性爱在线观看亚洲黄色一级片 | 亚洲AV无码一区二区三区牛牛| 最近中文字幕无吗高清免费视频| 日韩欧美亚洲国产精品字幕久久久 | 怡红院亚洲怡红院首页| 国产精品免费看久久久| 亚洲真人日本在线| 免费国产99久久久香蕉| 亚洲最大视频网站| 国产成人免费片在线视频观看| 国产精品免费久久久久影院| 水蜜桃亚洲一二三四在线| 大学生一级毛片免费看| 亚洲一级毛片视频| 国产免费一区二区三区VR| 亚洲av无码专区在线电影天堂 | 8888四色奇米在线观看免费看| 亚洲伊人久久大香线蕉结合| 亚洲国产成人a精品不卡在线| 人人玩人人添人人澡免费| 亚洲国产精品免费观看 | 日韩电影免费在线观看网址| 免费大片黄手机在线观看|