推薦
==================
asp動態include檔案
使用範例:include("youinc.asp")
<%
Function include(filename)
Dim re,content,fso,f,aspStart,aspEnd
set fso=CreateObject("Scripting.FileSystemObject")
set f=fso.OpenTextFile(server.mappath(filename))
content=f.ReadAll
f.close
set f=nothing
set fso=nothing
set re=new RegExp
re.pattern="^\s*="
aspEnd=1
aspStart=inStr(aspEnd,content,"<%")+2
do while aspStart>aspEnd+1
Response.write Mid(content,aspEnd,aspStart-aspEnd-2)
aspEnd=inStr(aspStart,content,"%\>")+2
Execute(re.replace(Mid(content,aspStart,aspEnd-aspStart-2),"Response.Write "))
aspStart=inStr(aspEnd,content,"<%")+2
loop
Response.write Mid(content,aspEnd)
set re=nothing
End Function
%>
==================
<%if xxx = "yyy" then%>
<!--#include file="file1.asp"-->
<%else%>
<!--#include file="file2.asp"-->
<%end if%>
這會下載沒有必要的文檔,影響載入效率。
1)
If xxx = "yyy" Then
Server.Execute("file1.asp")
Else
Server.Execute("file2.asp")
End If
2)
If xxx = "yyy" Then
Server.transfer("file1.asp")
Else
Server.transfer("file2.asp")
End If
3)
if xxx = "yyy" then
filespec = "file2.asp"
else
filespec = "file2.asp"
end if
filespec = server.mapPath(filespec)
scr = "scripting.fileSystemObject"
set fs = server.createobject(scr)
set f = fs.openTextFile(filespec)
content = f.readall
set f = nothing
set fs = nothing
response.write(content)
如果使用以上方法來實現include功能的時候,必須注意的地方。我們可以將<!--#include file="file.asp"-->中被包含的網頁file.asp看成是包含了file.asp的網頁的有機組成部分,只是將本來屬於該網頁的內容以另一個檔案形式儲存罷了,可以這樣說他們本來就是一個網頁,所以,被包含的網頁file.asp繼承了包含了file.asp的網頁的所有的參數設定,包括Session 但是,其他的方法並非如此,在html文法部分可以和主網頁共用,asp部分卻是獨立的,特別的Session在一般情況下是不能從主網頁中傳遞到被包含的網頁file.asp來,這點很重要,使用時要注意。