#INCLUDE 插入檔案內容

ASP 網頁內容於 IIS (Internet Information Services) 伺服器執行 ASP 檔案中,可以使用 #INCLUDE 指令,把另外一個 ASP 的檔內容插入於當前頁中來整體運行。#INCLUDE 例如在多個頁面上需要共同使用的函數 Function、頁首 Header、頁尾 Footer、選單按鈕以及共用區段等,易於日後的程式碼維護管理。雖然類似 <iframe> 但產生之程式碼是完整的一頁。

使用 #INCLUDE 插入其他檔案的指令,可以讓將常用的程式碼或 HTML 碼寫在一個檔案中減少重複的程式碼,也方便維護和修改。而且可以共用相關的變數、函數,但是如果使用判斷式是時會全部偵測,與 Server.Execute 不同各有優缺點。


#include Virtual 表示虛擬目錄

路徑是以 Virtual Directory 虛擬目錄開始「IIS (Internet Information Services) 目錄開始」例如 Inetpub\wwwroot 算起之路徑,需要注意其路徑是相對於網站的 Root Directory 根目錄,而不是目前執行的 ASP 檔案所在的目錄。

C:\Inetpub\wwwroot
<!--#include virtual = "mySite/Product/Header.asp"-->

#include File 表示相對的路徑。

相對路徑於含有引用 #INCLUDE 檔案的目錄「目前位置相同之目錄」。

<!--#include file = "Header.asp"-->

IIS 伺服器若是有 啟用上層路徑,則可以使用下例來插入上層的檔案,例如需要插入上上層目錄的頁尾檔案。

<!--#include file = "../../Footer.asp"-->


Server.Execute 單獨運行

Server.Execute("Footer.asp")

Server.Execute#INCLUDE 指令的不同之處 :

差異上 Server.Execute 指令是將該頁面之內容插入目前的位置來「單獨運行」與原始程式碼不關聯,所以與原始程式碼「變數」無法共同使用。#INCLUDE 則是將頁面的原始程式碼加入當前位置再做為一個「整體運行」亦可說是合成一體的。

使用上如果插入的頁不需要與原始程式關聯則用 Server.Execute 雖然變數無法共同使用,但瀏覽中未使用到他時並未運行不會產生伺服器負擔因為 #INCLUDE 則是執行前將插入檔案,伺服器需要處理相關的檔案包括未需執行的。

例如在插入的頁寫成錯誤的程式碼使用 #INCLUDE 的方式可發現,雖然未執行於該頁瀏覽亦出現錯誤。



Execute(expression)

Execute 是將函數的參數,當作運算式 expression 來執行,可以用來建立變數名或其變數的值等作用,與 Server.Execute 是不同的功能,使用上似乎比較少。