愤怒的大鸟 发表于 2015-2-3 23:28:57

ASP教程之关于静态Include文件的会商

缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。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-2-3 23:37:09

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

兰色精灵 发表于 2015-2-4 13:53:50

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

飘飘悠悠 发表于 2015-2-8 20:46:53

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

再现理想 发表于 2015-2-17 17:22:04

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

小魔女 发表于 2015-3-2 14:52:43

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

再见西城 发表于 2015-3-11 03:57:23

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

因胸联盟 发表于 2015-3-15 21:07:55

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

谁可相欹 发表于 2015-3-22 04:15:08

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

只想知道 发表于 2015-3-25 04:39:01

不能只是将它停留在纸上谈兵的程度上。

小女巫 发表于 2015-3-28 22:00:17

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

admin 发表于 2015-4-12 10:56:50

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

若天明 发表于 2015-4-17 19:27:18

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

简单生活 发表于 2015-4-23 18:00:04

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

第二个灵魂 发表于 2015-4-24 17:35:15

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

仓酷云 发表于 2015-5-1 08:37:24

掌握asp的特性而且一定要知道为什么。

冷月葬花魂 发表于 2015-5-9 20:53:03

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

愤怒的大鸟 发表于 2015-6-23 18:07:08

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

活着的死人 发表于 2015-6-26 21:25:47

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

不帅 发表于 2015-7-20 10:51:11

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
页: [1]
查看完整版本: ASP教程之关于静态Include文件的会商