你是否也在為了提高ASP應(yīng)用的性能而努力呢?注意千萬(wàn)不要只關(guān)心數(shù)據(jù)庫(kù)訪問(wèn)和COM組件的性能,對(duì)于用戶來(lái)說(shuō),Web頁(yè)面的顯示速度也同樣重要
。本文為你介紹的正是幾則提高頁(yè)面顯示速度的技巧和一些必須注意的問(wèn)題。
在安排Web頁(yè)面的布局時(shí),最常用的方法之一是用HTML表格界定頁(yè)面的結(jié)構(gòu)。例如,假設(shè)Web頁(yè)面由頂端的導(dǎo)航條和它下面的兩欄(列)構(gòu)成——左邊的列是一個(gè)導(dǎo)航條,右邊的列是實(shí)際安置內(nèi)容的區(qū)域。對(duì)于這樣一個(gè)頁(yè)面,我們可以用一個(gè)兩行、兩列的大表格進(jìn)行布局:在第一行中
,合并兩個(gè)列然后放上頂端導(dǎo)航表格;在第二個(gè)行中,左邊的列放上一個(gè)顯示導(dǎo)航按鈕的表格,右邊的列再用一個(gè)表格顯示頁(yè)面的實(shí)際內(nèi)容。用這種表格嵌套表格的方法進(jìn)行布局可以得到非常好的效果。
如果瀏覽器發(fā)現(xiàn)頁(yè)面中有一個(gè)TABLE標(biāo)記,在接收到對(duì)應(yīng)的結(jié)束標(biāo)記< /TABLE >之前它不會(huì)顯示這個(gè)表格。因此,如果整個(gè)頁(yè)面都放入了一個(gè)大表格中,在瀏覽器下載這個(gè)大表格的< /TABLE >標(biāo)記之前整個(gè)頁(yè)面都不會(huì)顯示。當(dāng)顯示內(nèi)容非常多的頁(yè)面時(shí)(例
www.boryin.com如,搜索結(jié)果或者電子商務(wù)網(wǎng)站上的產(chǎn)品目錄),表格的延遲顯示會(huì)導(dǎo)致整個(gè)頁(yè)面顯示的停頓。
為了避免出現(xiàn)這種情況,我們應(yīng)該把頁(yè)面劃分成多個(gè)較小且獨(dú)立的表格區(qū)域。這樣的話,每個(gè)表格的HTML代碼下載之后瀏覽器就可以立即顯示它。對(duì)于瀏覽者來(lái)說(shuō),頁(yè)面將在屏幕上一部分、一部分地逐漸顯示出來(lái)。而且更重要的是,這種頁(yè)面在屏幕上開(kāi)始顯示的速度要比前面等待整個(gè)頁(yè)面下載才顯示的方法快得多。
對(duì)于前面介紹的例子,我們不是使用單個(gè)大表格進(jìn)行頁(yè)面布局,而是使用三個(gè)獨(dú)立的表格:第一個(gè)表格顯示頁(yè)面頂端的導(dǎo)航條,使其具有足夠的寬度顯示頁(yè)面內(nèi)容并完
www.boryin.com整地給出其< TABLE >< /TABLE >標(biāo)記對(duì);在第一個(gè)表格的左下位置安排第二個(gè)表格,使這個(gè)表格向左對(duì)齊;最后一個(gè)表格位于第二個(gè)表格的右邊,用于放置頁(yè)面內(nèi)容。由于現(xiàn)在每一部分都是一個(gè)獨(dú)立的表格,瀏覽器只要下載了任一部分的代碼就會(huì)立即顯示它。因此,頁(yè)面頂端和左面的導(dǎo)航條將比頁(yè)面其余部分更快地顯示出來(lái)。這就避免了讓瀏覽者長(zhǎng)時(shí)間地在空白頁(yè)面前等待,而是給了他這樣一種印象:頁(yè)面已經(jīng)開(kāi)始下載,整個(gè)頁(yè)面將立刻出現(xiàn)在屏幕上
。 正如盡可能早地關(guān)閉TABLE標(biāo)記使得瀏覽器能夠快速地顯示出表格中的數(shù)據(jù),還有另外兩個(gè)標(biāo)記也同樣可以用這種方法提高顯示速度,這兩個(gè)標(biāo)記就是用于制作列表框的< OPTION >標(biāo)記和用于制作無(wú)序列表的< LI >標(biāo)記。
ASP程序員常常要訪問(wèn)數(shù)據(jù)庫(kù)獲取數(shù)據(jù)然后用< OPTION >標(biāo)記構(gòu)造列表框。只要簡(jiǎn)單地改動(dòng)一下代碼關(guān)閉< OPTION >標(biāo)記,就可以讓瀏覽器顯示頁(yè)面的速度加快。
例如,原先使用下面的代碼:
Do while not objRS.EOF
strOptionList = strOptionList & "< OPTION VALUE=""" & objRS("ID") & """ >" & objRS("ProductName")
objRS.MoveNext
Loop
Response.Write "< SELECT SIZE=""1"" >" & strOptionList & "< /SELECT >"
現(xiàn)在只需改動(dòng)一行代碼:
Do while not objRS.EOF
strOptionList = strOptionList & "< OPTION VALUE=""" & objRS("ID") & """ >" & objRS("ProductName") & "< /OPTION >"
objRS.MoveNext
Loop
Response.Write "< SELECT SIZE=""1"" >" & strOptionList & "< /SELECT >"
如果原來(lái)使用的代碼如下:
< UL >
< LI >蘋(píng)果
< LI >桔子
< LI >香蕉
< /UL >
那么現(xiàn)在改用:
< UL >
< LI >蘋(píng)果< /LI >
< LI >桔子< /LI >
< LI >香蕉< /LI >
< /UL >
經(jīng)過(guò)這些改動(dòng)之后,瀏覽器顯示頁(yè)面的速度將會(huì)更快。
出處:計(jì)算機(jī)世界