日期:2009-01-28  浏览次数:20951 次

我昨天在我们这里和一位朋友谈到路径时候使用了 include ,使我记起了以前谈论过关于这方面的事情,现在想将它重新写在这里供大家参考,希望能有更多的朋友也来讨论这个问题。

============================
include在网页制作中的使用既简单又灵活,它不但能减少页面的繁琐,也会使管理变得更有序和有效,许多朋友都在问是否能动态的使用include?在这里我再强调一下,<!--#include file="<%fileName%>"--> 是绝对行不通的,要是使用
<%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来,这点很重要,使用时要注意。