<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)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品亚洲成在人线AV无码| 久久亚洲欧洲国产综合| 亚洲第一成年人网站| 精品在线免费观看| 久久国产精品亚洲综合| 好久久免费视频高清| 亚洲AV无码1区2区久久| 99久热只有精品视频免费观看17| 久久亚洲国产成人亚| 黄+色+性+人免费| 亚洲伊人久久大香线蕉AV| 成年女人色毛片免费看| 亚洲av乱码中文一区二区三区| 啦啦啦在线免费视频| 美女视频黄频a免费大全视频| 免费播放特黄特色毛片| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 亚洲av鲁丝一区二区三区| 在线看片免费人成视久网| 亚洲女人初试黑人巨高清| 毛片a级毛片免费播放100| 美女被暴羞羞免费视频| 亚洲综合伊人久久综合| 1000部无遮挡拍拍拍免费视频观看| 一个人看的在线免费视频| 亚洲综合无码AV一区二区| 97国产在线公开免费观看| 97久久国产亚洲精品超碰热| 免费无码又爽又刺激高潮| 一区二区视频免费观看| 亚洲AV日韩AV永久无码绿巨人| 国产一卡二卡3卡四卡免费| 久久亚洲中文无码咪咪爱| 亚洲午夜无码久久久久| 无码国产精品一区二区免费式影视 | 亚洲一区二区三区乱码A| 99国产精品视频免费观看| 亚洲精品国产日韩| 在线观看永久免费| 特级毛片aaaa级毛片免费| 亚洲无删减国产精品一区|