天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

JavaScript 項(xiàng)目?jī)?yōu)化總結(jié)

  前端時(shí)間對(duì)公司已有項(xiàng)目JavaScript代碼進(jìn)行優(yōu)化,本文的是對(duì)優(yōu)化工作的一個(gè)總結(jié),拿出來與大家分享。當(dāng)然我的優(yōu)化方式可能并不是最優(yōu)的,或者說有些不對(duì)的地方,請(qǐng)指教。

  JavaScript優(yōu)化總結(jié)分為以下幾點(diǎn)

優(yōu)化前后對(duì)比

優(yōu)化前

優(yōu)化后

代碼混亂,同樣功能的函數(shù)重復(fù)出現(xiàn)在多個(gè)地方。如果需要修改實(shí)現(xiàn),需要找到所有的地方。牽一發(fā)而動(dòng)全身

模塊化,提取公共接口組織為庫、結(jié)構(gòu)清晰、方便代碼重用、并且能夠游戲防止變量污染問題。

JavaScript文件未壓縮,size比較大加載消耗網(wǎng)絡(luò)耗時(shí),阻塞頁面渲染

   

JavaScript公共庫文件使用UglifyJS壓縮:

  • Size比較小優(yōu)化了網(wǎng)絡(luò)加載時(shí)間
  • 壓縮混淆了代碼,在一定程度上保護(hù)代碼

使用時(shí)需要加載多個(gè)單獨(dú)的JavaScript文件,增加了http請(qǐng)求數(shù)降低性能

對(duì)公共庫合并壓縮在減少size的同時(shí),減少http請(qǐng)求數(shù)

缺乏文檔(讓后面的開發(fā)者對(duì)已有功能不清楚,這在一定程度上造成前面說的,同樣功能的函數(shù)重復(fù)出現(xiàn)在多個(gè)地方)

公共庫中每個(gè)類、函數(shù)、屬性都有說明文檔

  • 模塊化(類編程):代碼清晰、有效防止變量污染問題、代碼重用方便擴(kuò)展等;
  • JavaScript壓縮混淆:減少size優(yōu)化加載時(shí)間,混淆保護(hù)代碼;
  • JavaScript文件合并:減少http請(qǐng)求優(yōu)化網(wǎng)絡(luò)耗時(shí)提升性能;
  • 生成文檔:方便公共庫的使用,查找接口方便。

  模塊化(類編程)

  對(duì)于靜態(tài)類來說JavaScript實(shí)現(xiàn)比較簡(jiǎn)單,使用Object直接量就已經(jīng)夠用了;但是要?jiǎng)?chuàng)建實(shí)例化、可繼承經(jīng)典的類需要做一番工作。因?yàn)?a href=/itjie/Javajishu/ target=_blank class=infotextkey>JavaScript是基于原型的(prototype-based編程語言,并沒有包含內(nèi)置類的實(shí)現(xiàn)(它沒有訪問控制符,它沒有定義類的關(guān)鍵字class,它沒有支持繼承的extend或冒號(hào),它也沒有用來支持虛函數(shù)的virtual等),但是我們通過JavaScript可以輕易地模擬出經(jīng)典的類。

  靜態(tài)類

  根據(jù)寶寶JS公共接口的特性,它們不需要實(shí)例化,所以優(yōu)化使用了該方式。下面以PetConfigParser為例介紹下實(shí)現(xiàn)方式:

var PetConfigParser;if (!PetConfigParser) {    PetConfigParser = {};}(function () {    //private 變量、函數(shù)    /**     * 寶寶所有配置字典,以【cate * 10000 + (lvl - 1) * 10 + dex - 1】為key     * @attribute    petDic     * @type {Object}     * @private     */    var petDic = null;  //寶寶字典    /**     * 根據(jù)__pet_config構(gòu)建一個(gè)Object字典,以cate、dex、lvl組合作為key     * @method buildPetDic     * @private     * @return {void}     */    function buildPetDic() {        petDic = new Object();        for (var item in __pet_config) {            var lvl = parseInt(__pet_config[item]['lvl']);            var dex = parseInt(__pet_config[item]['dex']);            var cate = parseInt(__pet_config[item]['cate']);            var key = cate * 10000 + (lvl - 1) * 10 + dex;            petDic[key] = __pet_config[item];        }    }    //public 接口    /**     * 根據(jù)寶寶id,讀取__pet_config中對(duì)應(yīng)寶寶的信息     * @method getPetById     * @param   {String/int} petId 寶寶id     * @return  {Object} pet 寶寶的所有靜態(tài)信息,如{id:"300003289", lvl:"1", dex:"2", price:"200", life:"2592000", cate:"3", name:"飛天小使等級(jí)1熟練2", intro:"", skill:"護(hù)身符", skill1_prob:"30", skill2_prob:"0"}     */    if (typeof PetConfigParser.getPetById !== 'function') {        PetConfigParser.getPetById = function (petId) {            var pet = ("undefined" == typeof (__pet_config)) ? null : __pet_config["pet_" + petId];            return pet;        }}})(); 

it知識(shí)庫JavaScript 項(xiàng)目?jī)?yōu)化總結(jié),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 狼人大香伊蕉国产WWW亚洲 | 动漫美女被吸奶 | 亚洲欧美综合中文字幕 | 任你躁国语自产二区在线播放 | 亚洲国产在线观看免费视频 | 老女老肥熟国产在线视频 | 国产欧美精品国产国产专区 | 午夜噜噜噜私人影院在线播放 | 色爰情人网站 | 野花高清在线观看免费3中文 | 99久久精品国产国产毛片 | asian极品呦女xx农村 | 国产精品www视频免费看 | 十分钟免费看完整视频 | 亚洲欧洲自拍偷拍 | 国内精品久久久久久久999下 | 一区两区三不卡 | 欧美狂野乱码一二三四区 | 蜜柚视频网在线观看免费 | 无码天堂亚洲国产AV久久 | 午夜福利免费体检区 | 国产99r视频精品免费观看 | 最懂男人心论坛 | www免费看.男人的天堂 | 伊人色综合久久天天网 | 日产日韩亚洲欧美综合搜索 | 欧美日韩一级黄色片 | 色戒2小时38分在线观看 | 漂亮妈妈中文字幕版 | 国产精品xxxav免费视频 | 小p孩玩成年女性啪啪资源 小777论坛 | 挠黑色超薄丝袜脚心vk40分钟 | 国产精品白浆精子流水合集 | 亚洲日韩在线观看 | 国产精品久久久久久久人人看 | 直插下身完整的欧美版 | 亚洲免费福利在线视频 | 干了快生了的孕妇 | 国产全部视频列表支持手机 | 邻居的阿2中文字版电影 | 999精品影视在线观看 |