亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript使用享元模式實現文件上傳優化操作示例

2019-11-19 13:19:57
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript使用享元模式實現文件上傳優化操作。分享給大家供大家參考,具體如下:

一、享元模式是一種用于性能優化的模式,主要優化方式為,若系統中因為創建了大量類似的對象而導致內存占用過高,則可以考慮使用享元模式實現。

二、實例說明:

如果在瀏覽器中上傳文件,若使用常規寫法, 每上傳一個文件,就會創建一個實例對象;如果上傳2000個文件,那就有2000個對象,瀏覽器很可能出現假死狀態。這種情況下,我們考慮適應享元模式。

三、實例:

var Upload = function( uploadType ){  this.uploadType = uploadType;};Upload.prototype.delFile = function( id ){  uploadManager.setExternalState( id, this );  if( this.fileSize < 300 ){   return this.dom.parentNode.removeChild( this.dom );  }  if( window.confirm('確定要刪除該文件嗎?' + this.fileName )){     return this.dom.parentNode.removeChild( this.dom);  }};var UploadFactory = (function(){  var createdFlyWeightObjs = {};  return {    create: function( uploadType ){      if(createFlyWeightObjs[uploadType]){        return createdFlyWeightObjs[uploadType];      }      return createdFlyWeightObjs[uploadType] = new Upload(uploadType);    }  }})();var uploadManager = (function(){  var uploadDatabase = {};  return{    add: function(id, uploadType, fileName, fileSize){      var flyWeightObj = UploadFactory.create( uploadType );      var dom = document.createElement( 'div' );      dom.innerHTML = '<span>文件名稱:'+fileName+',文件大小:' +fileSize + '</span>' + '<button class="delFile">刪除</button>';      dom.querySelector( ".delFile" ).onclick = function(){       flyWeightObj.delFile( id );       document.body.appendChild( dom );       uploadDatabase[ id ] = {         fileName: fileName,         fileSize: fileSize,         dom: dom       };       return flyWeightObj;     },     setExternalState: functon( id, flyWeightObj ){        var uploadData = uploadDatabase[ id ];        for( var i in uploadData){           flyWeightObj[ i ] = uploadData[ i ];        }     }  }})();

然后需要寫一個觸發上傳動作的startUpload函數:

var id = o;window.startUpload = function( uploadType, files ){  for( var i=0,file; file = fules[ i ++ ];){     var uploadObj = uploadManger.add( ++id, uploadType, file.fileName, file.fileSize );  }};

最后調用,如下:

startUpload( 'plugin', [  {    fileName: '1.txt',    fileSize: 1000   },   {     fileName: '2.html',     fileSize: 1000   },   {     fileName: '3.txt',     fileSize: 5000   }]);startUpload( 'flash', [  {    fileName: '4.txt',    fileSize: 1000   },   {     fileName: '5.html',     fileSize: 1000   },   {     fileName: '6.txt',     fileSize: 5000   }]);

四、解釋:

調用時,有六個對象,但只有兩個類型(plugin和flash),我們通過享元模式,在創建對象時,只有兩個,如果上面提到的上傳2000個文件,利用上面的代碼,同樣只創建兩個對象,那么這就很好的解決了瀏覽器崩潰假死的問題。

更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美刺激性大交免费视频| 一本大道亚洲视频| 国产精品日韩在线播放| 亚洲欧洲成视频免费观看| 136fldh精品导航福利| 国产999视频| 精品久久久久久久中文字幕| 久久免费高清视频| 国外成人在线直播| 蜜月aⅴ免费一区二区三区| 国产精品爽爽爽| 日韩av在线一区二区| 欧美精品免费在线观看| 欧美高清视频在线观看| 97在线观看视频国产| 欧美激情性做爰免费视频| 国产精品第100页| 中文字幕在线观看日韩| 日韩免费观看av| 亚洲一区二区三区乱码aⅴ蜜桃女| 97视频免费在线观看| 日韩精品免费电影| 久久天堂电影网| 日本精品一区二区三区在线播放视频| 亚洲另类激情图| 国产婷婷97碰碰久久人人蜜臀| 国产精品欧美一区二区| 成人a级免费视频| 日韩专区中文字幕| 国产一区二区在线免费视频| 国产丝袜精品视频| 亚洲精品自在久久| 欧美最近摘花xxxx摘花| 成人黄色av免费在线观看| 久久99久国产精品黄毛片入口| www国产亚洲精品久久网站| 欧美激情国内偷拍| 91日韩在线视频| 成人黄色在线观看| 国产成人精品a视频一区www| 国内精品久久久久久中文字幕| 久久影视电视剧凤归四时歌| 狠狠久久五月精品中文字幕| 精品日韩美女的视频高清| 欧美小视频在线| 亚洲电影中文字幕| 成人亚洲欧美一区二区三区| 日韩av在线免费播放| 国产一区二区三区四区福利| 97国产真实伦对白精彩视频8| 亚洲色无码播放| 精品久久久久人成| 国产成人高潮免费观看精品| 亚洲国产黄色片| 久久视频免费观看| 国产精品成人av性教育| 国产91露脸中文字幕在线| 日韩欧美在线看| 成人黄色av播放免费| 日韩精品在线观看网站| 美女福利视频一区| 精品久久久久久久久久久久久| 精品一区二区三区电影| 91欧美精品成人综合在线观看| 日本乱人伦a精品| 在线观看日韩专区| 国产成人aa精品一区在线播放| 久久青草精品视频免费观看| 精品久久久久久中文字幕大豆网| 国产精品美女主播在线观看纯欲| 欧美亚洲国产日本| 色综合亚洲精品激情狠狠| 国产精品美乳在线观看| 亚洲视频在线观看视频| 欧美精品在线极品| 亚洲黄在线观看| 日韩电影视频免费| 亚洲福利视频免费观看| 亚洲欧美自拍一区| 亚洲男人天堂手机在线| 精品偷拍一区二区三区在线看| 日韩精品一二三四区| 热99精品只有里视频精品| 国产精品久久网| 91国偷自产一区二区三区的观看方式| 国产欧美日韩精品丝袜高跟鞋| 欧美日韩在线免费| 伊人亚洲福利一区二区三区| 日韩黄色高清视频| 国产美女直播视频一区| 亚洲精品久久久久久久久久久久| 欧美性xxxxhd| 久久这里只有精品99| 日韩在线免费av| 久久成人人人人精品欧| 欧美成人精品不卡视频在线观看| 96精品久久久久中文字幕| 亚洲大胆人体视频| 亚洲欧美日韩视频一区| 欧美成人性色生活仑片| 黑人欧美xxxx| 欧美亚洲另类视频| 91精品一区二区| 欧美午夜精品在线| 欧美综合一区第一页| 久久在精品线影院精品国产| 亚洲精品资源在线| 亚洲激情成人网| 国产欧美日韩精品丝袜高跟鞋| 日本欧美精品在线| 久久久久久亚洲精品不卡| 亚洲男人av在线| 亚洲欧美制服中文字幕| 国产精品久久久久久亚洲调教| 久久激情视频久久| 国产精品久久色| 日韩精品在线视频观看| 欧美孕妇孕交黑巨大网站| 欧美精品久久久久| 亚洲国产精品成人va在线观看| 日韩的一区二区| 亚洲色图日韩av| 日韩电影在线观看永久视频免费网站| 久久久国产影院| 日韩在线观看成人| 欧美一区二区三区免费观看| 久久五月天综合| 欧美性xxxx在线播放| 欧美大胆在线视频| 国产精品久久久久久五月尺| 亚洲无亚洲人成网站77777| 欧美精品成人91久久久久久久| 韩国国内大量揄拍精品视频| 欧美一区二区大胆人体摄影专业网站| 欧美视频第一页| 国产精品v片在线观看不卡| 亚洲精品一区二三区不卡| 亚洲肉体裸体xxxx137| 欧美日韩加勒比精品一区| 久久夜精品香蕉| 中文字幕国产精品| 国产91网红主播在线观看| 精品视频久久久久久久| 亚洲毛茸茸少妇高潮呻吟| 狠狠爱在线视频一区| 成人精品一区二区三区| 日韩av片电影专区| 欧美激情xxxxx| 国产精品久久久久久久美男| 精品网站999www| 91精品国产乱码久久久久久蜜臀| 亚洲最大福利网| 欧美日韩亚洲一区二区三区| 久久艳片www.17c.com| 午夜精品一区二区三区av| 久久福利网址导航| 欧美性猛交xxxx乱大交极品| 日韩精品免费视频| 亚洲性生活视频在线观看| 久久全球大尺度高清视频| 91sa在线看| 亚洲自拍偷拍福利| 国产在线精品一区免费香蕉| www.亚洲免费视频|