加速ASP程式的運行速度的兩種方法

來源:互聯網
上載者:User
程式|速度    1.使用表格嵌套? 

  在頁面中建立複雜的結構,一般通過在頁面中放置HTML表格來實現。如果要建立一個這樣的頁面:這個頁面有一個頂部導覽列一個左邊導覽列,一個右邊的內容區。可以用一個兩行兩列的大表格來建立它。第一行中,合并兩個列,然後插入一個頂部導覽列。第二行左邊的列中,插入一個表格來顯示導覽按鈕。右邊的欄中,放置一個表格來實際內容。(見圖一)這樣嵌套的表格產生的程式碼是這樣的: 

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

  但是,實際上,瀏覽器找到<TABLE>標籤的時候並不是立刻把頁面顯示到螢幕上,除非它找到相應的結束標籤</TABLE>。所以,如果你的整個頁面在一個表格裡的話,在收到最後一個</TABLE>之前,什麼也不會顯示出來,這樣,這個頁面將在整個檔案全部下載以後才能被使用者所看到。在頁面資料量比較大的時候(比如搜尋引擎的搜尋結果),這個特性會導致暫時的停頓。為了防止出現這種情況,可以在製作的時候把頁面分成許多小的表格。在每一個<TABLE>到相應的</TABLE>這一部分HTML代碼下載完的時候,瀏覽器就會把它顯示出來。在訪問者看來頁面是漸漸的,一部分一部分,越來越多的出現在螢幕上的。感覺上,這樣的頁面顯示速度比下載完整個檔案再一次顯示出來更快。 

  按照這個原則來研究前面的例子,應該把頁面中整個的大表分成三個單獨的表。用第一個表顯示頂部的導覽列,調節它的寬度,使它足夠容納所有的內容,在一個<TABLE></TABLE>程式碼片段中完成它。頁面下半部分,左邊第二個表排成一列。使用第三個表容納實際內容。(見圖二)因為每一個部分都是一個完整的表格,所以,每一部分代碼下載後都會立刻被顯示出來。這樣,頂部和左邊的導覽列將比頁面的其它部分更顯顯示出來。使用者會在這個時候想象頁面開始下載,很快就能顯示在螢幕上。這樣比起讓使用者在較長時間內一直面對一個空白螢幕要好得多。 

  修改過的代碼是這樣的: 

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

  2.也要記住關閉其他的標記 

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

  比如產生列表框和組合框<OPTION>標記和產生清單項目的<LI>標記。通常,ASP程式員存取資料庫,並把資料送入通過<OPTION>建立的列表框或組合框中,這時候在代碼中寫上一個關閉<OPTION>標記,這樣簡單的改變也能使頁面在瀏覽器中顯示的更快。 

  不要使用這樣的代碼: 

  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> 
  <LI>Apples 
  <LI>Oranges 
  <LI>Bananas 
  </UL> 

  使用這樣的代碼: 
  <UL> 
  <LI>Apples</LI> 
  <LI>Oranges</LI> 
  <LI>Bananas</LI> 
  </UL> 

  現在看看,你的頁面在瀏覽器中是不是顯示的快了? 

  請不要輕視這些改變對提高ASP程式效能的重要性。也許,在你能找到的“技巧與提示”一類的書或線上資料中,很少提到過通過最佳化HTML代碼來使你的程式啟動並執行更快。但是,在實際中應用這些技術,確實能使程式效能得到很大的提高。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.