仓酷云

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

[学习教程] ASP网页设计显式地开释你的ADO工具

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:13:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。ado|工具在实在的生存里,程序员生成怠惰.这个现实使我们常常深陷BUG的泥塘.特别是当用ASP处置数据库毗连时,它将让你感到身处油锅.

在ASP里,我们创建数据库毗连,然后用ADO取得数据查询的了局;我们最经常使用到的是ADODB.Connection和ADODB.Recordset.让我们看一个复杂的例子来懂得一下怎样利用这两个工具:

DimobjConn
SetobjConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionString="DSN=Northwind"
objConn.Open
DimobjRS
SetobjRS=Server.CreateObject("ADODB.Recordset")
objRS.Open"SELECT*FROMTable1",objConn

假如你还不是很熟习数据库毗连的话,请先浏览这篇文章
(http://www.4guysfromrolla.com/webtech/faq/Databases/faq2.shtml).

我们从objRS入手下手会商我们的主题.当我们用完objRS以后会做些甚麽呢?一般情形下程序员不再举行任何操纵,他们让ASP往摒挡后事.当Server.CreateObject挪用产生后,服务器将分派资本来操纵这些工具的新实例(instances),假如我们不显式地关照服务器我们不再利用这些分派的资本了,ASP应当为我们开释这些资本.对ASP完整信托有点儿冒险.更平安和更可托的举措是显式地封闭和扫除我们的Recordset和
Connection工具的实例.

我们该怎样封闭我们的工具及开释失落所分派的内存呢?我们所要做的全体事变就是当我们用完这两个工具后挪用以下的四行代码:

objRS.Close
SetobjRS=Nothing
objConn.Close
SetobjConn=Nothing

如许将强迫开释资本,远赛过依附ASP隐式地主动开释.如今,你大概会有些困惑:我们这么做真的很主要吗?谁会在每一个用过数据库毗连的ASP页面里多写四行代码呢?如许做的优点远远凌驾多写四行代码给我们带来的包袱.让我们援用
ActiveServerPages.com(http://www.activeserverpages.com/)的站长的一些话:

"你应当封闭Recordset,设为Nothing,封闭Connection,用一样的序次将其设为
Nothing.尺度的资本碎片搜集是不完整的和不成信的.[后面提到的碎片收
集,Charles指的是隐式地扫除服务器分派的资本.]

"DataReturn[一个ASPwebhosting公司]有很多站点依附IIS主动举行碎片搜集时呈现可骇的毛病.在加上Close/SetNothing的几行代码后,这些站点又象马儿一样愉快地跑起来.一切的年夜站都有显式开释资本的硬性划定."

假如Charles的话还不克不及让你佩服,让我们来会商一个因为没有显式利用内存再分派而呈现的成绩,这是个实在的例子.BrianFairchild用Access做背景数据库来撑持一个ASP年夜站.他发明每过一阵子工夫,ASP页面就会完整中断响应!HTML页能一般显现,但一切的ASP页面完整瘫痪,体系不能不重启.最初,Brian发明,显式地封闭和开释Recordset和Connection工具,妨碍就全体消散了.(看看动静板上Brian谈及此妨碍的文章)(http://www.aspmessageboard.com/forum/performance.asp?
M=1321&P=1&F=23)

CharlesCarroll还告知我们一个技能,那些用Access的用户应当增添缺省的线程数量.这儿就是Charles所说的:

"注册内外Access缺省的线程数是4.把它加到20将会使服务器跑得出乎平常的顺畅,但只是对Access出格管用,我们的服务器的CPU占用率从上午8点到早晨5点都是100%,但我在增添了线程数今后,服务器上的CPU即刻凉爽了上去."
</p>由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-20 08:21:21 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
小女巫 该用户已被删除
板凳
发表于 2015-1-29 06:05:00 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
精灵巫婆 该用户已被删除
地板
发表于 2015-1-31 15:32:33 | 只看该作者
掌握asp的特性而且一定要知道为什么。
再现理想 该用户已被删除
5#
发表于 2015-2-1 10:11:20 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
小魔女 该用户已被删除
6#
发表于 2015-2-7 03:08:25 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
谁可相欹 该用户已被删除
7#
发表于 2015-2-20 00:32:57 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
乐观 该用户已被删除
8#
发表于 2015-3-6 15:48:59 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
只想知道 该用户已被删除
9#
发表于 2015-3-13 04:07:06 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
爱飞 该用户已被删除
10#
 楼主| 发表于 2015-3-13 04:07:06 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
金色的骷髅 该用户已被删除
11#
发表于 2015-3-20 11:49:11 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 11:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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