ASP中处理#include
ASP中处理#include
在ASP中处理#include 文件与用编译高级编程语言,如C/C++处理包含文件,这两种方法之间有两个主要区别。
第一,ASP不从最终形成的ASP文件中移走那些未涉及到的信息。这是因为ASP独立于脚本引擎,不过多地进行代码
分析。大体说来,如果遇到了ASP文件的基本语法请求,信息就被缓存(假定缓冲器是打开的)并被发送到适当
的脚本引擎,进行进一步的分解、标记及执行。除了这个“死码”问题,ASP包含文件与编译语言之间的另一个区别在于:每个ASP文件都可以被看作它自己
的程序。只要一个页面不包含另一个,在ASP的意义上看来它们就没有关系,尽管二者对整个站点的运行都很
关键。因此,被两个不同页面所共享的一个#include 文件必须要被两个文件都完全包含。从本质上说,ASP不具
备许多高级语言所具备的连接器的优势,连接器可以用来避免包含文件中代码和数据的冗余。如果把我所概括的ASP包含文件的问题组合起来,结论就是:它对一个大型站点的内存将是破坏性的。想象
一下这种情况:一个包含文件中包含了可能要用到的所有共享程序。按照这种设计,导致的结果是所有的ASP页
都必须包含这一关键的文件。如果EverythingButTheKitchenSink.inc 经过分解之后与ASP文件的平均长度相同,
那么被ASP分配并为缓存的ASP文件使用的内存中的一半都充满了本来多余没用的信息。813
调用NT Task Manager/Processes 可以看到正被站点所使用着的内存,并观察一下多少内存是由mtx.exe
(如果站点被设置成独立的程序在IIS4上运行),dllhost.exe (如果站点被设置成独立的程序在IIS5上运行),
或是inetinfo.exe (如果不是独立的,见下面的图)这些程序所使用。想要掌握内存增加得有多快,一个很好的
测试方法是启动IIS后调用一个简单的页面来看看内存的大小。(看内存之前要调用一个ASP文件,因为在处理第
一个ASP文件时要建立一些普通的通用文件)。现在在你的站点上使用其它ASP文件,并监控每一个被使用的ASP文
件对内存的作用。
比如说我创建了ASP文件。第一个文件RunFirst.asp,是一个小文件,在观察内存之前初始化ASP资源。另外
两个文件除了它们所要使用的#include 文件信息不同以外,是完全一样的。将这些文件复制到你的wwwroot目录下,
然后按顺序运行RunFirst.asp, HelloWorld1.asp和 HelloWorld2.asp,执行HelloWorld1.asp和HelloWorld2.asp
之后观察内存,你会发现后者使用了更多的内存。这是因为它使用的#include 文件中有一个很大的未使用的程序,
BigAndUnreferenced, 它对页面的运行结果没有任何作用,但却占据了400K的内存。在Windows 2000 Server
w/ IIS5 上依次进行下列步骤得到的结果是:运行RunFirst.asp 后内存6,104K
运行HelloWorld1.asp后内存 6,124K
运行HelloWorld2.asp后内存 6,544K仅仅按照这个顺序没有什么明显的意义,颠倒装载顺序之后的结果是:
运行 RunFirst.asp 后内存6,096K
运行 HelloWorld2.asp后内存 6,536K
运行 HelloWorld1.asp 后内存6,540K请注意开始和结束的内存数不完全一致,因为内存管理器根据最近的请求大块地分配内存。但是相对而言,
最终的轮廓总是HelloWorld2.asp 占据大块的内存份额。本文结尾处可以下载这些简短的代码。浏览以下这些
代码,但要分清内存的不同:RunFirst.asp 是这样的:
< %@ LANGUAGE="VBSCRIPT" % >
< HTML >
< HEAD >< TITLE >Seed Page to load general ASP resources< /TITLE >< HEAD >
< BODY >
< %
Response.Write "Seed Page Loaded"
% >
< /BODY >
< /HTML >HelloWorld1.asp 是这样的:
< %@ LANGUAGE="VBSCRIPT" % >
< !--#include virtual ="/HelloWorld1.inc"-- >
< HTML >
< HEAD >< TITLE >Hello World using little memory< /TITLE >< HEAD >
< BODY >
< %
SayHello
% >
< /BODY >
< /HTML >HelloWorld1.inc代码是:
< %
Sub SayHello
Response.Write "Hello World 1"
End Sub
% >HelloWorld2.asp代码是:
< %@ LANGUAGE="VBSCRIPT" % >
< !--#include virtual ="/HelloWorld2.inc"-- >
< HTML >
< HEAD >< TITLE >Hello World using a lot of memory< /TITLE >< HEAD >
< BODY >
< %
SayHello
% >
< /BODY >
< /HTML >
ASP中处置#include
时间: 2025-01-24 13:23:14
ASP中处置#include的相关文章
ASP中处理#include (我不知道有没有人贴过,如果有的话,不要骂我)我也没有仔细看
include 813 在ASP中处理#include 文件与用编译高级编程语言,如C/C++处理包含文件,这两种方法之间有两个主要区别.第一,ASP不从最终形成的ASP文件中移走那些未涉及到的信息.这是因为ASP独立于脚本引擎,不过多地进行代码分析.大体说来,如果遇到了ASP文件的基本语法请求,信息就被缓存(假定缓冲器是打开的)并被发送到适当的脚本引擎,进行进一步的分解.标记及执行. 除了这个"死码"问题,ASP包含文件与编译语言之间的另一个区别在于:每个ASP文件都
ASPX中的用户控件与ASP中的INCLUDE方法对比
include|控件 在ASP的年代里,为了避免经常性重复的劳动,对一些功能相似的区域或者代码,经常作成一个文件,然后通过连接(直接连接或者虚拟连接)的方法引入到ASP网页文件之中,对于一个很大的引用了很多ASP文件就相当于一个文件被分成了很多块,彼此文件之间的数据是可以自由共享的(除了函数之中的数据). ASPX的用户控件就与INCLUDE有很大的不同了,它的最大特点就是在于他是以包装好的对象的形式呈现,通过我们的编程,可以将一个公用的事例抽象出来,将一些功能和方法总结出来,作成
ASP中使用INCLUDE对搜索引擎收录是否有影响
include|搜索引擎 点石有会员提出一个问题:ASP中过多使用如<!–#include file="include/footer.asp"–>对引擎收录有影响吗?这个问题引起大家的热门讨论,zac指出include应该是服务器端执行的,SE根本不知道是include的,所以对搜索引擎没有影响.seo123说使用<!–#include file="include/footer.asp"–>对搜索引擎几乎没影响,而使用<!–#inclu
ASPX中的用户控件与ASP中的INCLUDE方法对比_实用技巧
在ASP的年代里,为了避免经常性重复的劳动,对一些功能相似的区域或者代码,经常作成一个文件,然后通过连接(直接连接或者虚拟连接)的方法引入到ASP网页文件之中,对于一个很大的引用了很多ASP文件就相当于一个文件被分成了很多块,彼此文件之间的数据是可以自由共享的(除了函数之中的数据). ASPX的用户控件就与INCLUDE有很大的不同了,它的最大特点就是在于他是以包装好的对象的形式呈现,通过我们的编程,可以将一个公用的事例抽象出来,将一些功能和方法总结出来,作成相应的函数和属性供外部
关于在asp中使用Include的一些问题
include|问题 一.使用Include的好处: 使程序模块化,易于维护,并提高了可重用性,降低了错误发生的概率,缩短了开发周期. 二.使用Include的格式: 1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp <!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp 2
ASP中动态include文件代码实例
include|动态 受<! #include file="filename.asp" --> 宏限制,必须存在该文件并且会预先编译(不管前面是否加以条件).经常有这样的要求,根据不同的需求要求include不同的文件,如各个人的不同设置,所以要求能动态include文件. 代码如下: Function include(filename) Dim re,content,fso,f,aspStart,aspEnd set fso=CreateObject(&quo
ASP中动态include文件
include|动态 受<! #include file="filename.asp" --> 宏限制,必须存在该文件并且会预先编译(不管前面是否加以条件).经常有这样的要求,根据不同的需求要求include不同的文件,如各个人的不同设置,所以要求能动态include文件. 代码如下: Function include(filename) Dim re,content,fso,f,aspStart,aspEnd set fso=CreateObject(&quo
ASP中利用execute实现动态包含文件的方法_ASP CLASS类
摘要:本文介绍了ASP中动态包含ASP文件,并使其中ASP类(Class)可实例化的方法. ASP中,include file/virtual 是优先脚本代码处理的,所以无法使用include动态包含ASP文件.我们可以使用Execute函数动态执行所需代码. 方法: Execute(ASP代码) 例子:(vbCrLf为换行符) 复制代码 代码如下: Execute("Class clsAbc"&vbCrLf&"Public Function output&q
ASP中利用execute实现动态包含文件的方法
摘要:本文介绍了ASP中动态包含ASP文件,并使其中ASP类(Class)可实例化的方法. ASP中,include file/virtual 是优先脚本代码处理的,所以无法使用include动态包含ASP文件.我们可以使用Execute函数动态执行所需代码. 方法: Execute(ASP代码) 例子:(vbCrLf为换行符) 复制代码 代码如下: Execute("Class clsAbc"&vbCrLf&"Public Function output&q