熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

利用HTML優化加快網頁速度

2013-11-13 10:22:28  來源: .NET編程 

  明顯HTML暗渡公用腳本

  減少web頁面下載時間的關鍵就是設法減小文件大小當多個頁面共用一些成分內容時就可以考慮將這些公用部分單獨分離出來比如我們可以將多個HTML頁面都用到的腳本程序編寫成獨立存在的js文件然後再在頁面中按如下方式調用它

  以下是引用片段

  <script src=myfilejs></script>

  這樣公用文件只需要下載一次然後就進入緩沖區等下次再次調用包含公用文件的html頁面時下載時間明顯減少

  讓樣式表內容進入地下工作

  CSS是HTML裝扮器一個漂亮的Web頁面不可能沒有它HTML頁面中有多種引用CSS的方法不同的方法導致的效率也不一樣通常我們可以將定義於<style></style>間的樣式控制代碼提取出來保存到單獨的css文件中然後在HTML頁面中以<LINK>標記或者@import標記的方式進行引用

  以下是引用片段

  <style>

  @import url(mysheetcss

  </style>

  請注意css文件中無需包括<style>標記@import和LINK標記要定義在HTML頁面的HEAD部分

  寶貴內存節省兩法

  盡量減少HTML頁面占用的內存空間是加快頁面下載速度的一個有效方法在這方面個需要注意的問題

  使用同一種腳本語言

  HTML頁面離不開腳本程序的支持我們經常會在頁面中嵌入多種腳本語言比如JavaScript與VBScript但是不知你發覺沒有這樣的混合使用減慢了頁面的訪問速度原因在於要解釋並運行多種腳本代碼就必須在內存中裝載多種腳本引擎所以請盡量在頁面中使用同一種腳本語言編寫代碼

  巧用IFrame

  你使用過<IFRAME>標記嗎?它可是一個非常美妙的功能如果要在一個HTML文檔中包含第個頁面的內容通常的方法是使用<FRAMESET>標記但是有了<IFRAME>一切變得簡單了比如開發一個文檔預覽頁面可以在左邊放置一系列主題在右邊放置一個IFRAME其中包含要預覽的文檔當鼠標掠過左邊的每一個主題鏈接時就在右邊建立一個新的IFRAME以預覽文檔這樣做代碼效率無疑是高效的但同時導致了繁重的處理過程最終是緩慢的速度

  只使用單一的IFRAME當鼠標指向一個新主題時只需要修改IFRAME元素的SRC屬性即可這樣任何時間內只會有一個預覽文檔保留在內存

  擇優選用動畫定位屬性

  每天上網浏覽頁面你一定會看到許多動畫效果比如一個可愛的小兔子在頁面上來回地走動 …… 實現這個效果的核心技術就是CCS定位通常我們是使用elementstyleleft和elementstyletop個屬性來達到圖形定位的目的但是這樣做會產生一些問題left屬性返回一個字符串並且其中包含了度量單位(比如px)因此要設定新的位置坐標就必須首先對這個字符串返回值進行處理然後才能賦值象下面一樣

  以下是引用片段

  dim stringLeft intLeft

  stringLeft = elementstyleleft

  intLeft = parseInt(stringLeft)

  intLeft = intLeft +

  elementstyleleft = intLeft

  你一定會感覺做這麼點事情竟要編寫這麼復雜的代碼是否有更簡潔的方法?看這個屬性posLeftposTopposWidth 和 posHeight它們對應於相應字符串返回值的點數數值好了使用這些屬性重新編寫代碼實現上面代碼實現的功能

  以下是引用片段

  elementstyleposLeft +=

  代碼短小速度卻更快!

  循環控制多個動畫

  說到制作動畫效果當然離不開定時器的運用通常的方法就是使用windowsetTimeout來不斷地定位頁面上的元素但是如果頁面上有多個動畫要顯示是不是就要設定多個定時器呢?答案是No!原因很簡單定時器功能將消耗掉大量寶貴的系統資源可是我們仍能在頁面上控制多個動畫技巧就是使用一個循環在循環中根據不同的變量值控制相應動畫的位置整個循環中只使用一個windowsetTimeout()函數調用

  Visibility快於Display

  讓圖畫時隱時現會創造很有趣的效果種方法可以實現這個目的使用CSS的visibility屬性或者display屬性對於絕對位置元素diaplay和visibility具有同樣的效果兩者的區別在於設置為displaynone的元素將不再占用文檔流的空間而設置為visibilityhidden的元素仍然保留原位置

  但是如果要處理絕對位置的元素使用visibility會更快

  從小處著手

  編寫DHTML網頁的一個重要提示是從小處著手初次編寫DHTML頁面時一定不要試圖在頁面中使用你了解到的全部DHTML功能每次可以只使用一個單一的新特征並且仔細地觀察由此產生的變化如果發現性能有所下降就可以快速地找到為什麼

  腳本的DEFER化

  DEFER是腳本程序強大功能中的一個無名英雄你可能從沒有使用過它但是看完這裡的介紹後相信你就離不開它它告訴浏覽器Script段包含了無需立即執行的代碼並且與SRC屬性聯合使用它還可以使這些腳本在後台被下載前台的內容則正常顯示給用戶

  最後請注意兩點

  不要在defer型的腳本程序段中調用documentwrite命令因為documentwrite將產生直接輸出效果

  而且不要在defer型腳本程序段中包括任何立即執行腳本要使用的全局變量或者函數

  保持同一URL的大小寫一致性

  我們都知道UNIX服務器是大小寫敏感的但是你知道嗎Internet Explorer的緩沖區也是區別對待大小寫字符串的因此作為web開發者一定要記住保持相同鏈接的URL字符串在不同位置的大小寫的一致性否則就會在浏覽器的緩沖區中存放同一位置的不同文件備份也增加了下載同一位置內容的請求次數這些都無疑降低了web訪問效率所以請謹記同一位置的URL在不同頁面中請保持URL字符串的大小寫一致性

  讓標記有始有終

  自己編寫或者查看他人的HTML代碼時我們一定都遇到過標記有頭無尾的情況比如

  以下是引用片段

  <P>有頭無尾標記舉例

  <UL>

  <LI>第一個

  <LI>第二個

  <LI>第三個

  </UL>

  很明顯上面的代碼中缺少三個</LI>結束標記但是這並不妨礙它的正確執行在HTML中這樣的標記還有一些例如FRAMEIMG和P

  可是請不要偷懶請將結束標記寫完整這樣做不僅使HTML代碼格式規范更可以加速頁面的顯示速度因為Internet Explorer將不會花費時間判斷和計算段落或者列表項目在哪裡結束

  以下是引用片段

  <P>有頭有尾標記舉例</P>

  <UL>

  <LI>第一個</LI>

  <LI>第二個</LI>

  <LI>第三個</LI>

  </UL>

  OK以上列舉了有關加速HTML頁面的個處理技巧描述這些很簡單但是只有真正領會並掌握其中的本質並且舉一反三才會編寫出更快更好的程序


From:http://tw.wingwit.com/Article/program/net/201311/13417.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.