<p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">減少web頁面下載時間的關鍵就是設法減少檔案大小。當多個頁面共用一些成分內容時,就可以考慮將這些公用部分單獨分開。例如:我們可以將多個HTML頁面都用到的腳本程式寫成獨立存在的。 <a href="http://www.php.cn/wiki/48.html" target="_blank">js</a>文件,然後再在頁面中如下呼叫它:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">以下是引用片段:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><script src="myfile.js">< ;/script></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">這樣,公用檔案只需要下載一次,然後就進入緩衝區。等下次再呼叫包含公用檔案的html頁面時,下載時間明顯減少。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">讓樣式表內容進入地下工作</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">CSS是HTML裝扮器,一個漂亮的網路頁面不可能沒有它。 HTML頁面有多種引用CSS的方法,不同的方法所導致的效率也不一樣。通常,我們可以將定義於<style></style>間的樣式控製程式碼擷取出來,並儲存到單獨的。 css檔案中,然後在HTML頁面中以<LINK>標記或@import標記的方式進行引用:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">以下是引用片段:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><style></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">@import url("mysheet1.css");</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"></style></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">請注意2點:1、。 css檔案中無需包含<style>標記;2、@import和LINK標記要定義在HTML頁面的<a href="http://www.php.cn/html/html-HEAD-2.html" target="_blank">HEAD</a>部分。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">寶貴記憶體節省兩法</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">盡量減少HTML頁面佔用的記憶體空間是加快頁面下載速度的一個有效方法。在這方面,有2個需要注意的問題:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">1、使用同一種腳本語言</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">HTML頁面離不開腳本程式的支持,我們常常會在頁面中嵌入多種腳本語言,例如<a href="http://www.php.cn/wiki/48.html" target="_blank">JavaScript</a>與<a href="http://www.php.cn/wiki/1521.html" target="_blank">VBScript</a>.但是,不知你發覺沒有:這樣的混合使用減慢了頁面的存取速度。原因在於:要解釋並執行多種腳本程式碼,就必須在記憶體中裝載多種腳本引擎。所以,請盡量在頁面中使用同一種腳本語言編寫程式碼。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">2、巧用IFrame</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">你使用過<IFRAME>標記嗎?它可是一個非常美妙的功能。如果要在一個<a href="http://www.php.cn/code/5010.html" target="_blank">HTML文件</a>中包含第2個頁面的內容,通常的方法是使用<FRAMESET>標記。但有了<IFRAME>,一切變得簡單了。例如,開發一個文件預覽頁面,可以在左邊放置一系列主題,在右邊放置一個IFRAME,其中包含要預覽的文檔;當滑鼠掠過左邊的每一個主題連結時,就在右邊建立一個新的IFRAME以預覽文件。這樣做,程式碼效率無疑是高效的,但同時導致了繁重的處理過程,最終是緩慢的速度。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">只使用單一的IFRAME.當滑鼠指向一個新主題時,只需要修改IFRAME元素的SRC<a href="http://www.php.cn/wiki/169.html" target="_blank">屬性</a>即可。這樣,任何時間內只會有一個預覽文件保留在記憶體。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">擇優選用<a href="http://www.php.cn/code/9595.html" target="_blank">動畫</a>定位屬性</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">每天上網瀏覽頁面,你一定會看到許多動畫效果。例如,一個可愛的小兔子在頁面上來回地走動 …… 實現這個效果的核心技術就是CCS定位。通常,我們是使用element.style.left和element.style.top2個屬性來達到圖形定位的目的。但是,這樣做會產生一些問題:left屬性傳回一個<a href="http://www.php.cn/wiki/57.html" target="_blank">字串</a>,並且其中包含了度量單位(例如100px)。因此,要設定新的位置座標,就必須先對這個字串回傳值進行處理,然後才能賦值,像下面一樣:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">以下是引用片段:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">dim stringLeft, intLeft</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">stringLeft = element.style.left</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">intLeft = parseInt(stringLeft)</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">intLeft = intLeft + 10</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">element.style.left = intLeft ;</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">你一定會覺得做這麼點事情竟要寫這麼複雜的程式碼,是否有更簡潔的方法?看這4個屬性:posLeft、posTop、posWidth 和 posHeight,它們對應於對應字串回傳值的點數數值。好了,使用這些屬性重新編寫程式碼實現上面程式碼實現的功能:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">以下是引用片段:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">element.style.posLeft += 10</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">程式碼短小、速度卻更快! </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><a href="http://www.php.cn/code/6276.html" target="_blank">循環</a>控制多個動畫</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">說到製作動畫效果,當然也離不開<a href="http://www.php.cn/code/6244.html" target="_blank">計時器</a>的運用。通常的方法就是使用window.setTimeout來不斷定位頁面上的元素。但是,如果頁面上有多個動畫要顯示,是不是就要設定多個定時器呢?答案是No!原因很簡單:定時器功能將消耗大量寶貴的系統資源。可是我們仍能在頁面上控制多個動畫,技巧就是使用一個循環。在循環中根據不同的<a href="http://www.php.cn/wiki/70.html" target="_blank">變數</a>值控制對應動畫的位置,整個循環中只使用一個window.setTimeout()<a href="http://www.php.cn/wiki/145.html" target="_blank">函數</a>呼叫。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><a href="http://www.php.cn/wiki/929.html" target="_blank">Visibility</a>快於<a href="http://www.php.cn/wiki/927.html" target="_blank">Display</a></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">#讓圖畫時隱時現會創造很有趣的效果,有2種方法可以達成這個目的:使用CSS的visibility屬性或display屬性。對於絕對位置元素,diaplay和visibility具有相同的效果。兩者的差異在於:設定為display:none的元素將不再佔用文件流的空間,而設定為visibility:hidden的元素仍保留原位置。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">但如果要處理絕對位置的元素,使用visibility會更快。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">從小處著手</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">撰寫DHTML網頁的一個重要提示是:從小處著手。初次寫DHTML頁面時,一定不要試圖在頁面中使用你所了解的全部DHTML功能。每次可以只使用一個單一的新特徵,並且仔細地觀察由此產生的變化。如果發現效能有所下降,就可以快速找到為什麼。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">腳本的DEFER化</p>###<p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">DEFER是腳本程式強大功能中的一個「無名英雄」。你可能從來沒有使用過它,但看完這裡的介紹後,相信你就離不開它。它告訴瀏覽器Script段包含了無需立即執行的程式碼,並且,與SRC屬性聯合使用,它還可以使這些腳本在後台被下載,前台的內容則正常顯示給用戶。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">最後請注意兩點:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">1、不要在defer型的腳本程式段中呼叫<a href="http://www.php.cn/code/658.html" target="_blank">document</a>.write指令,因為document.write會產生直接輸出效果。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">2、而且,不要在defer型腳本程式段中包含任何立即執行腳本要使用的全域變數或函數。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">保持相同URL的大小寫一致性</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">我們都知道UNIX伺服器是大小寫敏感的,但是你知道嗎:Internet Explorer的緩衝區也是區別對待大小寫字串的。因此,作為web開發者,一定要記住保持相同連結的URL字串在不同位置的大小寫的一致性。否則,就會在瀏覽器的緩衝區中存放同一位置的不同檔案備份,也增加了下載相同位置內容的請求次數。這些都無疑降低了web存取效率。所以請謹記:同一位置的URL,在不同頁面中請保持URL字串的大小寫一致性。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">讓標記有始有終</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">自己寫或檢視他人的HTML程式碼時,我們一定都曾經遇過標記有頭無尾的情況。例如:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">以下是引用片段:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><P>有頭無尾標記範例</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><UL></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><LI>第一個</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><LI>第二</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><LI>第三個</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"></UL></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">很明顯,上面的程式碼中缺少三個</LI>結束標記。但是這並不妨礙它的正確執行。在HTML中,這樣的標記還有一些,例如FRAME、IMG和P.</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">可是請不要偷懶,請將結束標記寫完整,這樣做不僅使HTML代碼格式規範,更可以加速頁面的顯示速度。因為Internet Explorer將不會花費時間判斷和計算段落或清單項目在哪裡結束。 </p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">以下是引用片段:</p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><P>有頭有尾標記範例</P></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><UL></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">#<LI>第一</LI></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><LI>第二</LI></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;"><LI>第三個</LI></p> <p style="margin-top: 12px; padding: 0px; text-indent: 2em; color: rgb(51, 51, 51); font-family: verdana, arial, tahoma; white-space: normal; background-color: rgb(255, 255, 255); text-align: left;">< ;/UL></p>