|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。include|静态 咱们从一个案例谈起:
<%
'失掉用户地点的省分
Dim Province
Province = Request.form("Province")
'上面显示这个省分相干的信息
%>
<!--#include virtual="/ Province/<%= Province%>"-->
你感觉下面的代码可以任务吗?不!复杂地利用ASP来到达静态包括,你不克不及到达你想要的后果。为何?由于:Include号令先于ASP代码而失掉履行,所以,下面的代码并没有依照作者的志愿,先失掉用户地点的省分,再包括这个省分的信息!
假如你的确需求静态包括,你可以如许做:
<%
Select Case Province
Case 1: %>
<!--#include file="1.asp"à
<% Case 2: %>
<!--#include file="2.asp"à
<% Case 3: %>
<!--#include file="3.asp"à
<% End Select %>
应当说,这段代码可以失掉你想要的了局。然而,因为你的用户能够来自于33个省,你岂非包括33个文件?出格要申明的是,SSInc.dll是不晓得你事实需求哪一个包括文件的(现实上,这时候候Province还没有值),所以,她把一切的文件都包括出去了!你可以想象,这时候候的文件有多大!然后,ASP.DLL会去扫描这个文件中的ASP代码,然后履行!所以,每当如许的时分,你应当思索其他的思绪,好比数据库,或采取FileSystemObject。
如何静态Include文件?
解答
ASP法式员常常面对的最大应战之一是静态Include文件。因为#include 在ASP代码履行之前处置,所以,看起来,动if/else的头脑是不成能的。真是如许吗?
依据你利用Include的目标,和你将Include的文件数量,利用if/else或许可以处理成绩。但这相对不是任什么时候候可以见效的,并且也不是一种无效的处理举措,由于你需求做很多的手工任务。
假定有两个样本HTM文件,1.htm和2.htm,为简化起见,假定文件的内容以下:
<!-- 1.HTM: -->
<font color=#ff0000>This is 1.htm</font>
<!-- 2.HTM: -->
<font color=#0000ff>This is 2.htm</font>
如今咱们来尝尝静态Include:
<%
if request.querystring(‘param‘)=‘2‘ then
%>
<!--#include file=‘2.htm‘-->
<%
else
%>
<!--#include file=‘1.htm‘-->
<%
end if
%>
请注重:下面的两个#include 实践上都失掉了处置。你可以实践运转一下,看看后果:
http://localhost/Test.asp?param=1
http://localhost/Test.asp?param=2
http://localhost/Test.asp
下面咱们是把一个querystring作为前提。你还可以把工夫、日期、阅读器版本等作为前提。然而,前提越庞杂,这类办法的效力越差。上面供应了别的一种思绪:
<%
if request(‘param‘)=‘2‘ then
filespec = ‘2.htm‘
else
filespec = ‘1.htm‘
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)
%>
在IIS5.0/ASP3.0中,有两种新的办法来撑持“静态包括”:
<%
server.transfer filename
server.execute filename
%>
假如正好利用的是IIS5.0和ASP3.0,那末Ok! 然而IIS5.0需求运转在Windows 2000上。
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了. 另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们) |
|