Asp中动态包含文件include的用法详解
asp中动态include的方法
asp动态include文件
使用范例:include(“youinc.asp”)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | < % 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 %> |
1 2 3 4 5 | < %if xxx = "yyy" then%> <!--#include file="file1.asp"--> < %else%> <!--#include file="file2.asp"--> < %end if%> |
这会下载没有必要的文档,影响载入效率。
一、
1 2 3 4 5 | If xxx = "yyy" Then Server.Execute("file1.asp") Else Server.Execute("file2.asp") End If |
二、
1 2 3 4 5 | If xxx = "yyy" Then Server.transfer("file1.asp") Else Server.transfer("file2.asp") End If |
三、
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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功能的时候,必须注意的地方。
我们可以将中被包含的网页file.asp看成是包含了file.asp的网页的有机组成部分,只是将本来属于该网页的内容以另一个档案形式保存罢了,可以这样说他们本来就是一个网页,所以,被包含的网页file.asp继承了包含了file.asp的网页的所有的参数设定,包括Session 但是,其他的方法并非如此,在html语法部分可以和主网页共享,asp部分却是独立的,特别的Session在一般情况下是不能从主网页中传递到被包含的网页file.asp来,这点很重要,使用时要注意。
IIS6.0开启gzip压缩及开启失败的解决方法 Js字符串转换成数字的方法
原来是这样,多谢分享
是的呢。~