仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2048|回复: 19
打印 上一主题 下一主题

[学习教程] ASP教程之关于静态Include文件的会商

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:28:57 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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.(一般企业里,跟你们交付软件接触得最多的是她们)
愤怒的大鸟 该用户已被删除
沙发
 楼主| 发表于 2015-6-23 18:07:08 | 显示全部楼层
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-13 20:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表