蒙在股里 发表于 2015-1-16 23:16:54

ASP网页编程之静态Include文件的会商

ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。include|静态我们从一个案例谈起:
<%
失掉用户地点的省分
DimProvince
Province=Request.form("Province")
上面显现这个省分相干的信息
%>
<!--#includevirtual="/Province/<%=Province%>"-->
你以为下面的代码能够事情吗?不!复杂地利用ASP来到达静态包括,你不克不及到达你想要的效果。为何?由于:Include命令先于ASP代码而失掉实行,以是,下面的代码并没有依照作者的志愿,先失掉用户地点的省分,再包括这个省分的信息!

假如你的确必要静态包括,你能够如许做:
<%
SelectCaseProvince
Case1:%>
<!--#includefile="1.asp"à
<%Case2:%>
<!--#includefile="2.asp"à
<%Case3:%>
<!--#includefile="3.asp"à
<%EndSelect%>

应当说,这段代码能够失掉你想要的了局。可是,因为你的用户大概来自于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:-->
<fontcolor=#ff0000>Thisis1.htm</font>
<!--2.HTM:-->
<fontcolor=#0000ff>Thisis2.htm</font>
如今我们来尝尝静态Include:
<%
ifrequest.querystring(‘param‘)=‘2‘then
%>
<!--#includefile=‘2.htm‘-->
<%
else
%>
<!--#includefile=‘1.htm‘-->
<%
endif
%>
请注重:下面的两个#include实践上都失掉了处置。你能够实践运转一下,看看效果:http://localhost/Test.asp?param=1
http://localhost/Test.asp?param=2
http://localhost/Test.asp
下面我们是把一个querystring作为前提。你还能够把工夫、日期、扫瞄器版本等作为前提。可是,前提越庞大,这类办法的效力越差。上面供应了别的一种思绪:
<%
ifrequest(‘param‘)=‘2‘then
filespec=‘2.htm‘
else
filespec=‘1.htm‘
endif
filespec=server.mapPath(filespec)
scr=‘scripting.fileSystemObject‘
setfs=server.createobject(scr)
setf=fs.openTextFile(filespec)
content=f.readall
setf=nothing
setfs=nothing
response.write(content)
%>
在IIS5.0/ASP3.0中,有两种新的办法来撑持“静态包括”:
<%
server.transferfilename
server.executefilename
%>
假如恰好利用的是IIS5.0和ASP3.0,那末Ok!可是IIS5.0必要运转在Windows2000上。

</p>因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。

柔情似水 发表于 2015-1-20 08:58:49

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

再现理想 发表于 2015-2-2 13:56:06

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

金色的骷髅 发表于 2015-2-2 22:29:07

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

分手快乐 发表于 2015-2-8 15:01:08

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

谁可相欹 发表于 2015-2-25 19:23:24

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

透明 发表于 2015-3-8 01:25:57

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

乐观 发表于 2015-3-15 19:08:52

Session:这个存储跟客户端会话过程的数据,默认20分钟失效

精灵巫婆 发表于 2015-3-22 03:07:53

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
页: [1]
查看完整版本: ASP网页编程之静态Include文件的会商