當(dāng)前位置:首頁(yè)文章首頁(yè) IT學(xué)院 IT技術(shù)

幫你優(yōu)化ASP程序的顯示速度

作者:  來(lái)源:  發(fā)布時(shí)間:2011-5-31 15:08:57  點(diǎn)擊:

這篇文章我們將給大家介紹到關(guān)于如何去加快ASP程序的顯示速度,希望對(duì)ASP程序員們有所幫助。

作為一個(gè)ASP程序員,你不會(huì)懷疑提高Web應(yīng)用程序性能的重要性。為了讓程序運(yùn)行的更快一些,你可能一直忙于優(yōu)化數(shù)據(jù)庫(kù)或COM組件。如果這些你都做過(guò)了,你想到過(guò)靠加快最終生成HTML代碼在瀏覽器中的顯示速度來(lái)提高性能嗎?對(duì)于最終用戶(hù)來(lái)說(shuō),如果頁(yè)面能顯示的更快,你就能贏得更多的贊譽(yù)。
 
  提高HTML在瀏覽器中顯示的速度可以通過(guò)一些鮮為人知的技術(shù)來(lái)實(shí)現(xiàn)。

  1.使用表格嵌套?

  在頁(yè)面中建立復(fù)雜的結(jié)構(gòu),一般通過(guò)在頁(yè)面中放置HTML表格來(lái)實(shí)現(xiàn)。如果要建立一個(gè)這樣的頁(yè)面:這個(gè)頁(yè)面有一個(gè)頂部導(dǎo)航欄一個(gè)左邊導(dǎo)航欄,一個(gè)右邊的內(nèi)容區(qū)?梢杂靡粋(gè)兩行兩列的大表格來(lái)建立它。第一行中,合并兩個(gè)列,然后插入一個(gè)頂部導(dǎo)航欄。第二行左邊的列中,插入一個(gè)表格來(lái)顯示導(dǎo)航按鈕。右邊的欄中,放置一個(gè)表格來(lái)實(shí)際內(nèi)容。(見(jiàn)圖一)這樣嵌套的表格生成的代碼是這樣的:

 。糡ABLE BORDER="0">
 。糡R>
  <TD COLSPAN="2"><!-- content for top nav bar --></TD>
 。/TR>
  <TR>
 。糡D ALIGN="LEFT" VALIGN="TOP"><!-- content for left nav bar --></TD>
  <TD ALIGN="LEFT" VALIGN="TOP"><!-- content for body of page --></TD>
 。/TR>
  </TABLE>

  但是,實(shí)際上,瀏覽器找到<TABLE>標(biāo)簽的時(shí)候并不是立刻把頁(yè)面顯示到屏幕上,除非它找到相應(yīng)的結(jié)束標(biāo)簽</TABLE>。所以,如果你的整個(gè)頁(yè)面在一個(gè)表格里的話(huà),在收到最后一個(gè)</TABLE>之前,什么也不會(huì)顯示出來(lái),這樣,這個(gè)頁(yè)面將在整個(gè)文件全部下載以后才能被用戶(hù)所看到。在頁(yè)面數(shù)據(jù)量比較大的時(shí)候(比如搜索引擎的搜索結(jié)果),這個(gè)特性會(huì)導(dǎo)致暫時(shí)的停頓。為了防止出現(xiàn)這種情況,可以在制作的時(shí)候把頁(yè)面分成許多小的表格。在每一個(gè)<TABLE>到相應(yīng)的</TABLE>這一部分HTML代碼下載完的時(shí)候,瀏覽器就會(huì)把它顯示出來(lái)。在訪問(wèn)者看來(lái)頁(yè)面是漸漸的,一部分一部分,越來(lái)越多的出現(xiàn)在屏幕上的。感覺(jué)上,這樣的頁(yè)面顯示速度比下載完整個(gè)文件再一次顯示出來(lái)更快。

  按照這個(gè)原則來(lái)研究前面的例子,應(yīng)該把頁(yè)面中整個(gè)的大表分成三個(gè)單獨(dú)的表。用第一個(gè)表顯示頂部的導(dǎo)航欄,調(diào)節(jié)它的寬度,使它足夠容納所有的內(nèi)容,在一個(gè)<TABLE></TABLE>代碼段中完成它。頁(yè)面下半部分,左邊第二個(gè)表排成一列。使用第三個(gè)表容納實(shí)際內(nèi)容。(見(jiàn)圖二)因?yàn)槊恳粋(gè)部分都是一個(gè)完整的表格,所以,每一部分代碼下載后都會(huì)立刻被顯示出來(lái)。這樣,頂部和左邊的導(dǎo)航欄將比頁(yè)面的其它部分更顯顯示出來(lái)。用戶(hù)會(huì)在這個(gè)時(shí)候想象頁(yè)面開(kāi)始下載,很快就能顯示在屏幕上。這樣比起讓用戶(hù)在較長(zhǎng)時(shí)間內(nèi)一直面對(duì)一個(gè)空白屏幕要好得多。

  修改過(guò)的代碼是這樣的:

  <TABLE BORDER="0" WIDTH="100%">
 。糡R>
 。糡D ALIGN="CENTER" VALIGN="TOP"><!-- content for top nav bar --></TD>
 。/TR>
 。/TABLE>
 。糡ABLE BORDER="0" ALIGN="LEFT">
 。糡R>
  <TD ALIGN="LEFT" VALIGN="TOP"><!-- content for left nav bar --></TD>
 。/TR>
 。/TABLE>
  <TABLE BORDER="0">
 。糡R>
 。糡D ALIGN="LEFT" VALIGN="TOP"><!-- content for page body --></TD>
 。/TR>
 。/TABLE>

  2.也要記住關(guān)閉其他的標(biāo)記

  在上面的例子中,我們僅僅早一些關(guān)閉<TABLE>標(biāo)記,就能讓頁(yè)面在瀏覽器顯示的更快些。以此類(lèi)推,還有一些類(lèi)似的標(biāo)記也有同樣的特性。

  比如產(chǎn)生列表框和組合框<OPTION>標(biāo)記和產(chǎn)生列表項(xiàng)的<LI>標(biāo)記。通常,ASP程序員存取數(shù)據(jù)庫(kù),并把數(shù)據(jù)送入通過(guò)<OPTION>建立的列表框或組合框中,這時(shí)候在代碼中寫(xiě)上一個(gè)關(guān)閉<OPTION>標(biāo)記,這樣簡(jiǎn)單的改變也能使頁(yè)面在瀏覽器中顯示的更快。

  不要使用這樣的代碼:

  Do while not objRS.EOF
  strOptionList = strOptionList & "<OPTION VALUE=""" & objRS("ID") &_""">"& _objRS("ProductName")
 objRS.MoveNext
  Loop

  Response.Write "<SELECT SIZE=""1"">" & strOptionList & "</SELECT>"

  要使用這樣的代碼:
  Do while not objRS.EOF
  strOptionList = strOptionList & "<OPTION VALUE=""" & objRS("ID") & _ """>" & objRS("ProductName") & "</OPTION>"
  objRS.MoveNext
  Loop

  Response.Write "<SELECT SIZE=""1"">" & strOptionList & "</SELECT>"

  不要使用這樣的代碼:
  <UL>
 。糒I>Apples
 。糒I>Oranges
 。糒I>Bananas
 。/UL>

  使用這樣的代碼:
 。糢L>
 。糒I>Apples</LI>
 。糒I>Oranges</LI>
 。糒I>Bananas</LI>
 。/UL>

  現(xiàn)在看看,你的頁(yè)面在瀏覽器中是不是顯示的快了?

  請(qǐng)不要輕視這些改變對(duì)提高ASP程序性能的重要性。也許,在你能找到的“技巧與提示”一類(lèi)的書(shū)或在線資料中,很少提到過(guò)通過(guò)優(yōu)化HTML代碼來(lái)使你的程序運(yùn)行的更快。但是,在實(shí)際中應(yīng)用這些技術(shù),確實(shí)能使程序性能得到很大的提高。

文章評(píng)論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z