ASP中處理#include
ASP中處理#include
在ASP中處理#include 文件與用編譯高級(jí)編程語(yǔ)言,如C/C++處理包含文件,這兩種方法之間有兩個(gè)主要區(qū)別。
第一,ASP不從最終形成的ASP文件中移走那些未涉及到的信息。這是因?yàn)锳SP獨(dú)立于腳本引擎,不過(guò)多地進(jìn)行代碼
分析。大體說(shuō)來(lái),如果遇到了ASP文件的基本語(yǔ)法請(qǐng)求,信息就被緩存(假定緩沖器是打開(kāi)的)并被發(fā)送到適當(dāng)
的腳本引擎,進(jìn)行進(jìn)一步的分解、標(biāo)記及執(zhí)行。
除了這個(gè)“死碼”問(wèn)題,ASP包含文件與編譯語(yǔ)言之間的另一個(gè)區(qū)別在于:每個(gè)ASP文件都可以被看作它自己
的程序。只要一個(gè)頁(yè)面不包含另一個(gè),在ASP的意義上看來(lái)它們就沒(méi)有關(guān)系,盡管二者對(duì)整個(gè)站點(diǎn)的運(yùn)行都很
關(guān)鍵。因此,被兩個(gè)不同頁(yè)面所共享的一個(gè)#include 文件必須要被兩個(gè)文件都完全包含。從本質(zhì)上說(shuō),ASP不具
備許多高級(jí)語(yǔ)言所具備的連接器的優(yōu)勢(shì),連接器可以用來(lái)避免包含文件中代碼和數(shù)據(jù)的冗余。
如果把我所概括的ASP包含文件的問(wèn)題組合起來(lái),結(jié)論就是:它對(duì)一個(gè)大型站點(diǎn)的內(nèi)存將是破壞性的。想象
一下這種情況:一個(gè)包含文件中包含了可能要用到的所有共享程序。按照這種設(shè)計(jì),導(dǎo)致的結(jié)果是所有的ASP頁(yè)
都必須包含這一關(guān)鍵的文件。如果EverythingButTheKitchenSink.inc 經(jīng)過(guò)分解之后與ASP文件的平均長(zhǎng)度相同,
那么被ASP分配并為緩存的ASP文件使用的內(nèi)存中的一半都充滿了本來(lái)多余沒(méi)用的信息。813
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注