摘要:隨著Internet應用的迅速發展和普及,現在越來越多的人開始學習網頁設計,但很多設計者,特別是初學者,由于缺少網頁技巧的應用,會使得網頁比較單調、枯燥無味。該文介紹了十個加快HTML/DHTML運行速度的技巧,利于初學者方便、快捷的掌握,從而提高網頁設計的質量。
關鍵詞:HTML CSS 層疊樣式表 加速 Defer
Web開發人員不是必須掌握復雜的組件技術才能加快HTML/DHTML頁面的訪問速度,只有掌握了HTML與DHTML方面的技巧,無論是技術高超的老手,還是初涉編程的新人,才會加快HTML/DHTML運行速度。
1 把公共代碼獨立出來
減少Web頁面下載時間的關鍵就是設法減小文件大小。當多個頁面共用一些成分內容時,就可以考慮將這些公用部分單獨分離出來。比如:我們可以將多個HTML頁面都用到的腳本程序編寫成獨立存在的.js文件,然后再在頁面中按如下方式調用它:
這樣,公用文件只需要下載一次,然后就進入緩沖區。等下次再調用包含公用文件的html頁面時,下載時間會明顯減少。
2 讓樣式表內容進入地下工作
CSS(層疊樣式表)最初是用來彌補HTML對于文檔樣式控制不足的,而現在CSS的功能更是HTML不可缺少的一部分,一個漂亮的Web頁面不可能沒有它。HTML頁面中有多種引用CSS的方法,不同的方法導致的效率也不一樣。通常,我們可以將定義于間的樣式控制代碼提取出來,保存到單獨的.css文件中,然后在HTML頁面中以標記或者@import標記的方式進行引用:。
3 寶貴內存節省兩法
盡量減少HTML頁面占用的內存空間是加快頁面下載速度的一個有效方法。在這方面,需要注意兩點。一是盡量在頁面中使用同一種腳本語言編寫代碼,如嵌入多種腳本語言,就必須在內存中裝載多種腳本引擎,這樣會減慢頁面的訪問速度。二是巧用Iframe,當鼠標指向一個新主題時,只需要修改IFRAME元素的SRC屬性即可。
4 擇優選用動畫定位屬性
通常,我們是使用element.style.left和element.style.top 2個屬性來達到圖形定位的目的。但是,這樣做會產生一些問題:left屬性返回一個字符串,并且其中包含了度量單位(比如100px)。因此,要設定新的位置坐標,就必須首先對這個字符串返回值進行處理,然后才能賦值,代碼如下所示:
dim stringLeft,intLeft
stringLeft=element.style.left
intLeft=parseInt(stringLeft)
intLeft=intLeft+10
element.style.left=intLeft;
我們可看到代碼太復雜了,而用posLeft、posTop、posWidth 和 posHeight這些屬性可輕而易舉的實現上述功能:element.style.posLeft+=10代碼短小、速度卻更快!
5 一個循環控制多個動畫
用定時器制作動畫效果,通常的方法是使用window.setTimeout來不斷地定位頁面上的元素。但是如果頁面上有多個動畫要顯示,如用多個定時器會消耗掉大量的系統資源。在這里我們的技巧是使用一個循環,在循環中根據不同的變量值控制相應動畫的位置,整個循環中只使用一個window.setTimeout()函數調用。
6 Visibility快于Display
使用CSS的visibility屬性或display屬性可創造出圖畫時隱時現的有趣效果。對于絕對位置元素,diaplay和visibility具有同樣的效果。兩者的區別在于:設置為display:none的元素將不再占用文檔流的空間,而設置為visibility:hidden的元素仍然保留原位置。但是如果要處理絕對位置的元素,使用visibility會更快。
7 代碼要有明確的目的
編寫DHTML網頁的一個重要提示是:代碼要有明確的目的。初次編寫DHTML頁面時,一定不要試圖在頁面中使用你了解到的全部DHTML功能。每次可以只使用一個單一的新特征,并且仔細地觀察由此產生的變化。如果發現性能有所下降,就可以快速地找到為什么。
8 腳本的DEFER參數
DEFER是腳本程序強大功能中的一個“無名英雄”,它告訴瀏覽器Script段中的代碼不需要馬上執行,而是等頁面加載完畢后再執行,這無疑會加快頁面的執行速度。Defer與Src屬性聯合使用,還可以使這些腳本在后臺被下載,前臺的內容則正常顯示給用戶。使用Defer屬性需注意兩點:一是不要在Defer型的腳本程序段中調用document.write命令,因為document.write將產生直接輸出效果。二是不要在defer型腳本程序段中包括任何立即執行腳本要使用的全局變量或者函數。
9 保持同一URL的大小寫一致性
UNIX服務器對字母的大小寫非常敏感,Internet Explorer的緩沖區對字符串的大小寫也是非常敏感的。因此,作為Web開發者,一定要記住保持相同鏈接的URL字符串在不同位置的大小寫的一致性。否則,就會在瀏覽器的緩沖區中存放同一位置的不同文件備份,增加了下載同一位置內容的請求次數。這些都無疑降低了Web訪問效率。所以請謹記同一位置的URL,在不同頁面中請保持URL字符串的大小寫一致性。
10 讓標記有始有終
自己編寫或者查看他人的HTML代碼時,我們一定都遇到過標記有頭無尾的情況。比如:
有頭無尾標記舉例
很明顯,上面的代碼中缺少三個結束標記。但是大多數瀏覽器都有一定的容錯功能,這并不妨礙它的正確執行。在HTML中,這樣的標記還有一些,例如FRAME、IMG和P。但是我們在編寫代碼時不要偷懶,要將結束標記寫完整,這樣做不僅使HTML代碼格式規范,更可以加速頁面的顯示速度。因為Internet Explorer將不會花費時間判斷和計算段落或者列表項目在哪里結束。
有頭有尾標記舉例
在新的HTML標準中單標簽的末尾也需要加上結束標記如:
舊:
新:
11 結束語
以上列舉了有關加速HTML頁面的10個處理技巧,描述這些很簡單,但是只有真正領會并掌握其中的本質,并且舉一反三,才會編寫出更快、更好的程序。
參考文獻:
[1]鄭俊生,姜敏.使用DIV+CSS進行網頁設計應用研究[J].電腦開發與應用.2008,9.
[2]嚴永松.網頁設計技巧[J].開發經驗,2010,9.
[3]徐國平.[J].網頁設計與制作教程.高等教育出版社,2011:35-60.
[4]楊霞.網頁設計常見問題研究[J].遼寧高職學報,2006,6.