小问题,大隐患 ——ASP的对象释放

原创 2004年09月09日 14:57:00

初步接触ASP的程序,对于对象的使用还不是很清楚,发生了一些问题,在别人的帮助下得到了纠正,在此想作为一个忠告写出来,防止自己以后再出同样的错误。如果有不对之处还希望大家多多指正。

对于ASP程序,有以下几个基本的内置对象:
Application对象,Request对象,Response对象,Server对象,Session对象,
绝大多说的ASP的操作代码都是运用这些内置对象的方法。

除了以上几个内置对象外,我们平常编写ASP的程序(涉及到数据库)都还需要用到以下几种新创建的对象:
1、数据库连接对象
    一般把这种对象叫CONNECTION
  创建方法
dim ProConn
set ProConn=Server.CreateObject("ADODB.CONNECTION")
  使用这个CONNECTION对象打开一个Access数据库
ProConn.Open "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=;DBQ=" & Server.MapPath("DB.mdb")

2、Recordset对象
    这种对象主要用来在ASP代码中执行数据库查询的SQL语句
  创建方法
dim rs
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open strSQL,ProConn,1,1
'strSQL是SQL语句的字符串
'ProConn是CONNECTION对象
'1,1是游标参数

以上两种对象是我们经常碰到的,它们在使用完毕后必须注意的就是释放这些对象。

释放的方法如下:
ProConn.close
rs.close     
set ProConn=nothing   
set rs=nothing    

接下来要说的是引用自创的DLL时使用的对象,关于怎么封装ASP代码为DLL请参看上一篇文章.


这种对象的使用如下:
Dim ConDB
set ConDB=Server.CreateObject("ConDBDLL.Conn")
'调用ConDB的方法
ConDB.ConnectDB()
ConDB.DBPath()
'ConnectDB()和DBPath()都是这个封装DLL中自定义的方法

CreateObject("ConDBDLL.Conn")中的ConDBDLL是这个DLL的工程名,Conn是这个工程中的class
简单的一句set ConDB=Server.CreateObject("ConDBDLL.Conn")就使ConDB变成了一个自创对象。

就是这么简单的一个对象,我却忘记了在调用创建这个对象的ASP文件的其他ASP源代码文件中释放掉,致使为以后存在了巨大的隐患。

这样没有释放的对象,在这个ASP的网站多次使用后,系统就会变得其慢无比,原因都是因为没有释放这个对象。
都是自己不细心的结果。
哎………

asp mvc特性应用

介绍aspmvc 各种特性,包括控制器,视图,EF,数据注解,路由等特性,并以Visio Studio 2013 作为演示工具,演示相关的特性使用及效果
  • 2018年04月11日 11:14

asp.net 性能优化之内存

1.对象创建尽量放到后面 如:
  • wangsky2
  • wangsky2
  • 2014-08-15 15:12:17
  • 1424

ASP.NET内存占用问题

   原来写过的一部分ASP.NET的页面用于数据的选择,也就是把符合条件的记录都显示出来,由用户选择其中的一条。为了加快速度,所有符合条件的数据取出后放在了Session中,分页查找时直接取这个数据...
  • lovelyxc
  • lovelyxc
  • 2005-07-30 09:27:00
  • 1589

销毁资源和释放内存

0. 什么是资源? .NET 框架中如何访问资源? 所谓的资源就是程序中可利用的数据,譬如:字符串、图片和任何二进制数据,包括任何类型的文件。 在面向对象的环境中,每一个类型都标识为某些程序所用的...
  • xipan10102232
  • xipan10102232
  • 2015-04-28 09:12:07
  • 755

小问题,大隐患 ——ASP的对象释放

初步接触ASP的程序,对于对象的使用还不是很清楚,发生了一些问题,在别人的帮助下得到了纠正,在此想作为一个忠告写出来,防止自己以后再出同样的错误。如果有不对之处还希望大家多多指正。对于ASP程序,有以...
  • zhdleo
  • zhdleo
  • 2004-09-09 14:57:00
  • 976

谈一谈Javascript内存释放那点事

Javascript语言有自己的一套内存回收机制,一般情况下局部变量和对象使用完就会被系统自动回收,无需我们理会。但是碰到闭包的情况这些变量和对象是不会被回收的,对于普通的web站点,页面刷新或跳转这...
  • taoerchun
  • taoerchun
  • 2016-05-22 23:41:13
  • 19660

ASP.net 内存不足(OutOfMemory)的调试分析

32位操作系统的寻址空间是4G,其中有2G被操作系统占用,也就是说留给用户进程的内存只有2G(其中还要扣除程序加载时映像占用的部分空间,一般只有1.6G~1.8G左右可以使用)。 如果进程运行中...
  • lzqinfen
  • lzqinfen
  • 2014-08-15 11:16:49
  • 1320

导出Excel—之释放内存完美的解决办…

在导出Excel的时候,内存里面有时候会多出来很多Excel.exe,占用内存。   而如果在程序里面写一个杀掉Excel内存的方法,会把有用的打开的Excel也关掉。   而只要加一个判断就可以解决...
  • lovejesuslove
  • lovejesuslove
  • 2016-03-21 10:52:56
  • 1407

javascript如何释放内存

- 一个对象在其生存的上下文环境之外,即会失效。  - 一个全局的对象在没有被执用(引用)的情况下,即会失效。 例如: //-------------------------...
  • diligentcat
  • diligentcat
  • 2011-08-29 11:53:47
  • 1417

JavaScript内存释放

 源自MSDN在IE下的JS编程中,以下的编程方式都会造成即使关闭IE也无法释放内存的问题,下面分类给出:1、给DOM对象添加的属性是一个对象的引用。范例:var MyObject = {};docu...
  • birdwindy
  • birdwindy
  • 2007-12-13 23:11:00
  • 7852
收藏助手
不良信息举报
您举报文章:小问题,大隐患 ——ASP的对象释放
举报原因:
原因补充:

(最多只允许输入30个字)