循環(huán)控制多個(gè)動畫
說到制作動畫效果,當(dāng)然離不開定時(shí)器的運(yùn)用。通常的方法就是使用window.setTimeout來不斷地定位頁面上的元素。但是,如果頁面上有多個(gè)動畫要顯示,是不是就要設(shè)定多個(gè)定時(shí)器呢?答案是No!原因很簡單:定時(shí)器功能將消耗掉大量寶貴的系統(tǒng)資源??墒俏覀?nèi)阅茉陧撁嫔峡刂贫鄠€(gè)動畫,技巧就是使用一個(gè)循環(huán)。在循環(huán)中根據(jù)不同的變量值控制相應(yīng)動畫的位置,整個(gè)循環(huán)中只使用一個(gè)window.setTimeout()函數(shù)調(diào)用。
Visibility快于Display
讓圖畫時(shí)隱時(shí)現(xiàn)會創(chuàng)造很有趣的效果,有2種方法可以實(shí)現(xiàn)這個(gè)目的:使用CSS的visibility屬性或者display屬性。對于絕對位置元素,diaplay和visibility具有同樣的效果。兩者的區(qū)別在于:設(shè)置為display:none的元素將不再占用文檔流的空間,而設(shè)置為visibility:hidden的元素仍然保留原位置。
但是如果要處理絕對位置的元素,使用visibility會更快。
從小處著手
編寫DHTML網(wǎng)頁的一個(gè)重要提示是:從小處著手。初次編寫DHTML頁面時(shí),一定不要試圖在頁面中使用你了解到的全部DHTML功能。每次可以只使用一個(gè)單一的新特征,并且仔細(xì)地觀察由此產(chǎn)生的變化。如果發(fā)現(xiàn)性能有所下降,就可以快速地找到為什么。
腳本的DEFER化
DEFER是腳本程序強(qiáng)大功能中的一個(gè)“無名英雄”。你可能從沒有使用過它,但是看完這里的介紹后,相信你就離不開它。它告訴瀏覽器Script段包含了無需立即執(zhí)行的代碼,并且,與SRC屬性聯(lián)合使用,它還可以使這些腳本在后臺被下載,前臺的內(nèi)容則正常顯示給用戶。
http://www.pconline.com.cn/pcedu/sj/wz/html/10111/pic/20011124_htmlspeed01.gif
最后請注意兩點(diǎn):
1、不要在defer型的腳本程序段中調(diào)用document.write命令,因?yàn)閐ocument.write將產(chǎn)生直接輸出效果。
2、而且,不要在defer型腳本程序段中包括任何立即執(zhí)行腳本要使用的全局變量或者函數(shù)。
保持同一URL的大小寫一致性
我們都知道UNIX服務(wù)器是大小寫敏感的,但是你知道嗎:Internet Explorer的緩沖區(qū)也是區(qū)別對待大小寫字符串的。因此,作為web開發(fā)者,一定要記住保持相同鏈接的URL字符串在不同位置的大小寫的一致性。否則,就會在瀏覽器的緩沖區(qū)中存放同一位置的不同文件備份,也增加了下載同一位置內(nèi)容的請求次數(shù)。這些都無疑降低了web訪問效率。所以請謹(jǐn)記:同一位置的URL,在不同頁面中請保持URL字符串的大小寫一致性。
讓標(biāo)記有始有終
自己編寫或者查看他人的HTML代碼時(shí),我們一定都遇到過標(biāo)記有頭無尾的情況。比如:
有頭無尾標(biāo)記舉例
很明顯,上面的代碼中缺少三個(gè)結(jié)束標(biāo)記。但是這并不妨礙它的正確執(zhí)行。在HTML中,這樣的標(biāo)記還有一些,例如FRAME、IMG和P。
可是請不要偷懶,請將結(jié)束標(biāo)記寫完整,這樣做不僅使HTML代碼格式規(guī)范,更可以加速頁面的顯示速度。因?yàn)镮nternet Explorer將不會花費(fèi)時(shí)間判斷和計(jì)算段落或者列表項(xiàng)目在哪里結(jié)束。
有頭有尾標(biāo)記舉例
OK,以上列舉了有關(guān)加速HTML頁面的10個(gè)處理技巧,描述這些很簡單,但是只有真正領(lǐng)會并掌握其中的本質(zhì),并且舉一反三,才會編寫出更快、更好的程序