日本xxxx18视频在线观看-日本xxxx1819-日本xxxwww在线观看-日本xxx-日本xx-日本www在线视频

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

提高程序執(zhí)行效率 Web開(kāi)發(fā)技巧大串燒

admin
2010年8月18日 15:7 本文熱度 3964
目前的Web應(yīng)用程序愈發(fā)的復(fù)雜化,包括擁有富客戶端以及大量的JavaScript編碼等等,從用戶角度而言,讓頁(yè)面加載得更快、對(duì)用戶的操作響應(yīng)得更及時(shí),能夠給用戶提供更為友好的體驗(yàn),這就需要開(kāi)發(fā)人員應(yīng)提高應(yīng)用程序的執(zhí)行效率,以下是關(guān)于提高程序執(zhí)行效率的小技巧。

  1.盡量避免使用DOM。當(dāng)需要反復(fù)使用DOM時(shí),先把對(duì)DOM的引用存到JavaScript本地變量里再使用。使用設(shè)置innerHTML的方法來(lái)替換document.createElement/appendChild()方 法。


  2.eval()有問(wèn)題,new Fuction()構(gòu)造函數(shù)也是,盡量避免使用它們。


  3.拒絕使用with語(yǔ)句。 它會(huì)導(dǎo)致當(dāng)你引用這個(gè)變量時(shí)去額外的搜索這樣的一個(gè)命名空間,with里的代碼在編譯時(shí)期是完全未知的。


  4.使用for()循環(huán)替代for…in循 環(huán)。因?yàn)閒or…in循環(huán)在開(kāi)始循環(huán)之前需要Script引擎創(chuàng)建一個(gè)含有所有可循環(huán)屬性的 List,需要多檢查一次。


  5.把try-catch語(yǔ)句放在循環(huán)外面,不要放在循環(huán)里面,因?yàn)楫惓J呛苌侔l(fā)生的,放在外面避免每次都要執(zhí)行它們。


  6.甚至圣經(jīng)里都提到過(guò)這個(gè) – 不要全局的。全局變量的生命周期貫穿整個(gè)腳本的生命周期,而本地變量的存在范圍隨著本地命名空間的銷毀而消失。當(dāng)在函數(shù)或其它地方引用一個(gè)全局變量時(shí),腳 本引擎需要搜索整個(gè)全局命名空間。


  7.fullName += 'John'; fullName += 'Holdings';執(zhí)行速度快于fullName += 'John' + 'Holdings';


  8.如果你需要把多個(gè)字符串連接起來(lái),最好是把他們做成一個(gè)數(shù)組,然后調(diào)用join()方法實(shí)現(xiàn)這個(gè)操作。這種方式在生成HTML片段時(shí)尤其有效。


  9.對(duì)于簡(jiǎn)單的任務(wù),最好使用基本操作方式來(lái)實(shí)現(xiàn),而不是使用函數(shù)調(diào)用實(shí)現(xiàn)。例如val1 < val2 ? val1 : val2;執(zhí)行速度快于Math.min(val1, val2);,類似的,myArr.push(newEle);慢于myArr[myArr.length] = newEle;


  10.將函數(shù)的引用作為參數(shù)傳遞到setTimeout()和setInterval()里優(yōu)于將函數(shù)名作為字符串參數(shù)傳遞(硬編碼)。例如,setTimeout(”someFunc()”, 1000)執(zhí)行效率慢于setTimeout(someFunc, 1000)


  11.當(dāng)進(jìn)行遍歷操作時(shí)避免使用DOM操作。通過(guò)像getElementsByTagName()這 種方法得到的DOM元素隊(duì)列都是動(dòng)態(tài)的;有可能在你還沒(méi)有對(duì)它遍歷完成時(shí),它已經(jīng)被改變。這有可能導(dǎo)致死循環(huán)。


  12.當(dāng)你對(duì)對(duì)象的成員(屬性或方法)進(jìn)行反復(fù)操作時(shí),先存儲(chǔ)對(duì)它們的引用。例如var getTags = document.getElementsByTagName; getTags(’div’);


  13.在任何的代碼段里,在局部變量范圍外存放一個(gè)這個(gè)局部變量的引用。例如



  1. function foo(arr) {
  2. var a = ’something’;

  3. //變量 ‘a(chǎn)’ 對(duì)于下面的一段就是范圍外變量,這個(gè)變量的引用在很多情況下會(huì)有用處。
  4. for (var i = 0, j = a, loopLen = arr.length; i < loopLen; i++) {
  5. //do something
  6. }
  7. }

  14.for(var i=0; i < someArray.length; i++) 的執(zhí)行效率慢于for (var i=0, loopLen=someArray.length; i<loopLen; i++) 。


  15.在HTTP頭信息里加入緩存控制過(guò)期和最大存活時(shí)間標(biāo)記。


16.優(yōu)化CSS。要使用<link>方式,而不要使用@import方式。


  17.使用CSS技術(shù)來(lái)優(yōu)化圖片資源。關(guān)


  18.用GZip方式壓縮.js和.css文件。如果你使用的是Apache,在 .htaccess 里設(shè)置壓縮方式,你的HTML, XML和JSON也同時(shí)會(huì)被壓縮。



  1. AddOutputFilterByType DEFLATE text/html text/css text/
    plain text/xml application/x-javascript application/json

  19.使用JavaScript壓縮工具。除了使用YUI和JSMin外,你還可以試一試Google Closure http://closure-compiler.appspot.com/home。


  20.優(yōu)化每個(gè)頁(yè)面上的各種資源,把它們拆分到各個(gè)子域上,這么它們就能夠并行下載。


  21.將CSS樣式表放在頁(yè)面的最頂端,這樣能方便包括IE在內(nèi)的瀏覽器進(jìn)行解析。


  22.盡量將DOM結(jié)構(gòu)保持的越簡(jiǎn)單越好。DOM的體積會(huì)影響相關(guān)的操作效率,像查找, 遍歷,DOM改動(dòng)都有影響。document.getElementsByTagName(’*').length這 個(gè)值越小越好。


  23.注意你使用的選擇器。例如,如果你想獲取一個(gè)ul下的直接子元素,使用jQuery(”ul > li”)而不要使用jQuery(”ul li”)


  24.當(dāng)切換元素的可見(jiàn)性時(shí)(display),請(qǐng)記住:element.css()的 速度快于element.hide() 和 element.addClass(’myHiddenClass’)。 除非在一個(gè)循環(huán)里,我選擇element.addClass(’myHiddenClass’), 這樣會(huì)使代碼更簡(jiǎn)潔 – 不要使用inline CSS和JavaScript。


  25.當(dāng)你使用完對(duì)DOM的引用變量后,要把它置為NULL。


  26.使用AJAX時(shí),GET的執(zhí)行效率高于POST。所以要盡量使用GET方式。只是要注意一點(diǎn),IE只允許你用GET傳送2K的數(shù)據(jù)。


  27.小心使用腳本動(dòng)畫(huà)。沒(méi)有硬件的支持,動(dòng)畫(huà)會(huì)執(zhí)行的很慢。盡量避免使用那些沒(méi)有實(shí)際價(jià)值的動(dòng)畫(huà)效果。


  28.如果你的background-image對(duì)于這個(gè)圖片的容器太小的話,請(qǐng)避免使 用background-repeat。如果你的背景圖片需要來(lái)回填充很多次才能充滿背景,那么將background-repeat屬性設(shè)置成background-image 和repeat-x 或 repeat-y來(lái) 達(dá)到填充背景的效果的做法是不明智的,這種填充方式的效率特別的低。你應(yīng)該嘗試使用一個(gè)足夠大的圖片來(lái)做background-image并 且使用background-repeat: no-repeat。


  29.布局時(shí)不要使用<table>。 <table>在瀏覽器完全把它畫(huà)出來(lái)之前需要反復(fù)繪制好幾次。因?yàn)镈OM中<table>是很少見(jiàn)的一種之后輸出的會(huì)影響之前輸出的顯示效果的元素。對(duì)于表格數(shù)據(jù)來(lái)說(shuō),你可 以使用table-layout:fixed; 這是一種更有效的現(xiàn)實(shí)算法,根據(jù)CSS 2.1技術(shù)說(shuō)明,這種寫(xiě)法可以讓表格一行一行的輸出。


  30.盡可能的使用原始JavaScript。限制JavaScript框架的使用。


該文章在 2010/8/18 15:07:35 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产一级a毛一级a看免费视频 | 国产日韩一区二区三区在线观看 | 国产在沙发上午睡被强 | 97国产综合色产在线视频 | 国产酒店强推在线观看 | 欧美日韩不卡视频合集 | 国产欧美日韩在线视频 | 日韩精品图片观看网址大全下载 | 国产欧美日韩电影在线观看 | 成人国产精 | 158国产手机视频大全 | 欧美自拍另类欧美综合图区 | 国产l精品国产亚洲区在线观看 | 欧美自拍另类欧美综合图区 | 国产精品亚洲综合色 | 国产精品大片在线网址 | 国产精彩视频在线观看97网 | 日本香蕉一区二区在线观看 | 床戏在线 | 另类专区欧 | 欧美日韩在线视频专区免费 | 国产精品乱码一区二区三 | 日韩午夜电影网 | 国产精品欧美一区二区在线观看 | 日本簧片在线观 | 国产精品玖玖视频 | 欧美精品一区二区三区无卡片 | 岛国一区二区三区在线 | 国产一精品一aⅴ一免费 | 男人的j | 精品福利在线观看 | 欧美日本一区二区综合另类 | 国产又色又爽又刺激在线观看 | 国产91福利精品免费观看 | 99国产情侣在线播放 | 好吊妞人成视频在线观看 | wwww黄免| 国产精品亚洲日韩aⅴ在线 国产精品区免费视频 | 欧美日韩精品在线二区 | 日韩曰批免费视频播放网站 | 欧美日韩中文国产va另类电影 |