真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解javascript設(shè)計(jì)模式三:代理模式

代理模式是一種對程序?qū)ο筮M(jìn)行控制性訪問的一類解決方案。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)名山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

引入代理模式,其實(shí)是為了實(shí)現(xiàn)單一職責(zé)的面向?qū)ο笤O(shè)計(jì)原則。

單一職責(zé)其實(shí)就是指在一個(gè)類中(js中通常指對象和函數(shù)等),應(yīng)僅有一個(gè)引起它變化的原因。這樣會(huì)幫助程序設(shè)計(jì)具有良好的健壯和高內(nèi)聚特性,從而當(dāng)變化發(fā)生時(shí),程序設(shè)計(jì)會(huì)盡量少的受到意外破壞。

代理模式有多種方法,保護(hù)代理、遠(yuǎn)程代理、虛擬代理、緩存代理等。

但在javascript中,代理模式最常用到的兩種方法是虛擬代理和緩存代理。

虛擬代理

在理解虛擬代理時(shí),可以將其想象為一個(gè)經(jīng)紀(jì)人,客戶程序需要通過這個(gè)虛擬代理(經(jīng)紀(jì)人)來調(diào)用本體對象的方法。

虛擬代理示例demo1: 圖片loading預(yù)加載

//通過虛擬代理實(shí)現(xiàn)圖片預(yù)加載
//代理模式進(jìn)行圖片預(yù)加載的實(shí)現(xiàn)思路是: 通過代理對象獲取實(shí)際顯示圖片地址并進(jìn)行加載,同時(shí)先讓本體對象顯示預(yù)加載圖片,待代理對象將實(shí)際圖片地址加載完畢后傳遞給本體對象進(jìn)行顯示即可。

//本體對象
var myImage = (function(){
  var imgNode = new Image()
  document.body.appendChild(imgNode)

  return {
    setSrc: function(src){
      imgNode.src = src
    }
  }
})()

//代理對象
var proxyImage = (function(){
  var img = new Image();     //1、代理對象新建一個(gè)img對象
  img.onload = function(){    //4、代理對象img加載真實(shí)圖片src完成后將src傳遞給本體對象顯示
    myImage.setSrc(this.src)
  }
  return {
    setProxySrc: function(src){
      myImage.setSrc('../images/loding.gif') //2、代理對象控制本體對象使用加載圖片src
      img.src = src          //3、代理對象的img對象獲取將要傳遞給本體對象的真實(shí)圖片src
    }
  }
})()

//通過代理對象來對本體對象進(jìn)行訪問
proxyImage.setProxySrc('https://p1.ssl.qhimgs1.com/t0153297036f4471d81.jpg')

虛擬代理示例demo2:合并HTTP請求,減少網(wǎng)絡(luò)請求資源消耗




  
  
  
  代理模式 虛擬代理合并HTTP請求


  
1 2 3 4 5 6 7 8 9

緩存代理

緩存代理可以為一些開銷大的運(yùn)算結(jié)果提供暫時(shí)存儲(chǔ),在下次運(yùn)算時(shí),如果傳遞進(jìn)來的參數(shù)和之前的一致,則可以直接返回前面存儲(chǔ)的結(jié)果

緩存代理示例demo: 計(jì)算乘積




  
  
  
  代理模式-緩存代理


  *
  
  

在編寫業(yè)務(wù)代碼時(shí),并不需要一開始就考慮是否使用代理模式,只要當(dāng)發(fā)現(xiàn)使用代理模式更方便時(shí),再編寫代理對象即可。

以上所述是小編給大家介紹的javascript設(shè)計(jì)模式三:代理模式詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!


分享題目:詳解javascript設(shè)計(jì)模式三:代理模式
當(dāng)前鏈接:http://weahome.cn/article/ggoeid.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部