仓酷云

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

[学习教程] ASP教程之怎样加强ASP程序功能(2) (jaklin摘自Y...

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

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

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

x
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。程序|功能怎样加强ASP程序功能(2)
2000-08-11・编译:甘冀平・Yesky

技能6:伶俐地利用Session工具

  Session在忙碌站点上利用时有几个缺点。忙碌的意义是:站点上每秒有上百的页面被哀求,大概同时有上千的会见用户。这个技能关于那些请求程度扩大强的站点十分主要,也就是指这些站点:它们使用多个服务器完成数据装载大概处置大批容错。关于小型站点,好比外部网Intranet,Session长短常值得倡始的。

  再次重申,ASP主动地为每个初次点击Web服务器的用户创立一个Session,每个Session占据约莫10KB的内存,保存期默许是20分钟。

  利用Session最年夜的成绩不是功能,而是扩大性,Session不克不及超过多个Web服务器,一旦在一个服务器上创立了Session,它的数据就驻留在那边。这意味着,假如在Web上利用Session,你就得为每个间接会见寄存Session服务器的用户哀求计划一个战略。这就是将用户“粘”在Web服务器上,术语“stickysessions”就来历于此。假如Web服务器碰到停滞,“Stuck”用户就会丧失他们的Session形态,由于Session不保存在磁盘上。

  实行粘性session的战略包含硬件与软件办理体例,好比windows2000初级服务器中的NetworkLoadBalancing和Cisco公司的LocalDirector,但调换这些要就义必定的扩大性。

  Application工具也不克不及超过服务器。假如必要在Web群中共享并更新Application数据,就必要利用背景数据库。但是,只读Application数据在Web群中仍旧很有效。

  很多对义务请求严厉的站点都要设立最少2个Web服务器,以是在计划严厉义务的使用程序时,就必要实行“stickysessions”,大概复杂地制止利用Session,同时也能够接纳其他保留用户形态到自力Web服务器的办理手艺。

  假如不利用Session,必定要确认将它们封闭,这能够经由过程Internet服务办理器完成。假如决意利用Session,能够经由过程几种办法来最小化它们的影响。

  能够将不必要Session的内容(好比匡助画面,会见者地区,等等)挪动到封闭Session的自力ASP使用程序中。在基本页面上,能够给ASP一个唆使,让它不必要利用Session。将上面的代码间接到场到ASP页面的头部:

<%@EnableSessionState=False%>

  利用这个唆使的一个很好的注释是在框架布局中Session创立了一个风趣的成绩。ASP确保在一个时候只要一个来自Session的哀求被实行,这就确保了假如扫瞄器为单个用户哀求多个页面时,只要一个ASP哀求在当时可以承受Session,云云就制止了存取Session工具时的多线程成绩。很不幸,在框架布局中的一切页面将依照一连的按次显现出来,一个接一个,而不是同时,以是用户为了看到全部框架必需要等很长工夫。划定规矩是:假如必定的框架页面没有利用Session,就必定要告知ASP间接利用@EnableSessionState=False。

  除利用Session工具,另有很多其他办理会话形态的选择。关于小数目的形态(小于4KB),我们一般倡议利用cookie、查询字符串变量和表单埋没域。关于象购物车一样的年夜数目数据,背景数据库是最符合的选择。

技能7:将代码装进COM工具中

  假如要编写良多VBScript大概JScript,为了提本性能,能够将代码编写成COM工具而且编译利用。编译代码基础上比注释性代码运转快很多,编译组件工具可经由过程“earlybinding”存取其他COM工具,这比在剧本中挪用组件要无效。

这么做有很多长处:

COM工具无益于从贸易划定规矩中自力出表达式划定规矩
COM工具使代码重用变成大概
很多开辟者发明用VB,C++大概VisualJ++编写程序,比ASP更简单调试
  COM工具也出缺点,包含初始开辟工夫和对分歧编程技能的必要。注重将大批ASP代码做成COM工具组件不会有优点,反而大概招致功能的丧失,从而得到了编译代码的上风。如何组合利用ASP剧本和COM工具到达最好功能是一个测试的成绩。我们注重到微软公司已年夜范围在Windows2000/IIS5.0上进步了剧本与ADO的功能,由此,跟着IIS5.0版本的引进,削减了编译代码的功能上风。

技能8:利用OptionExplicit

  要在ASP文件中利用OptionExplicit界说,而且安排到ASP文件的头部,从而强制开辟者在利用前声明一切的变量。很多程序员都以为这在使用程序调试时十分有效,由于它制止了发生毛病范例变量和偶尔创立新变量的大概。

大概更主要的是,声明的变量要年夜年夜快于非声明变量。

技能9:拷贝常常利用的数据到剧本变量中

  在ASP中存取COM工具时,应当拷贝常常利用的工具数据到剧本变量中,如许就削减了对COM工具的办法挪用。这些挪用要比存取剧本变量绝对来讲费时吃力。当存取Collection和Dictionary工具时,利用这项技能也削减了高贵的查找操纵。

  一般,假如要不止一次地存取工具数据,就应将数据放进剧本变量中,工具数据次要也就是Request变量(表单和查询字符串变量)。好比,站点要传送一个叫做UserID的查询字符串变量,假定它将在一个特别页面被援用12次,那末不必要挪用Request(“UserID”)12次,只需在ASP页面的头部分派给UserID一个变量,然后在页面中利用它,如许做就节俭了11次COM办法的挪用。

  实践中,存取COM属性或办法是很高贵的,上面的例子展现了通用代码:

Foo.bar.blah.baz=Foo.bar.blah.qaz(1)
IfFoo.bar.blah.zaq=Foo.bar.blah.abcThen...

下面的代码实行后,产生以下事变:

1、变量Foo被看成全局工具
2、变量bar被看成Foo的一员
3、变量blah被看成Foo.bar的一员
4、变量qaz被看成Foo.bar.blah的一员
5、挪用Foo.bar.blah.quaz(1)
6、再实行步骤1到3分化baz
7、分化baz做为Foo.bar.blah的一员
8、再实行步骤1到3分化zaq
9、再实行步骤1到3一次分化abc

如上所示,这十分没无效率而且很慢。更快的办法是用VBScript编写代码,以下:

Setmyobj=Foo.bar.blahdotheresolutionofblahONCE
Myobj.baz=myobj.qaz(1)
IfMyobj.zaq=Myobj.abcThen...

假如利用VBScript5.0大概更高版本,能够用With语句编写:

WithFoo.bar.blah
.baz=.qaz(1)
If.zaq=.abcThen...
...
EndWith


注重:这个技能也能够使用在VB编程中。

技能10:制止再界说数组

  争夺不要再界说数组。思索到功能成绩,假如呆板的物理内存巨细不敷,最好按最差情形大概最好情形设置数组的初始尺寸,必要时再从头界说。

上面的代码展现了Dim和Redim的利用:

<%
DimMyArray()
RedimMyArray(2)
MyArray(0)="hello"
MyArray(1)="good-bye"
MyArray(2)="farewell"
...
someothercodewhereyouendupneedingmorespacehappens,then...
RedimPreserveMyArray(5)
MyArray(3)="morestuff"
MyArray(4)="evenmorestuff"
MyArray(5)="yetmorestuff"
%>

  复杂地界说数组初始尺寸为符合的巨细长短常好的,而不要用Redim加年夜数组。这么做大概华侈了一些内存(假如没有完整地利用空间),可是博得了速率。</p>缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全
谁可相欹 该用户已被删除
沙发
发表于 2015-1-20 08:43:19 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
柔情似水 该用户已被删除
板凳
发表于 2015-1-25 10:11:59 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
海妖 该用户已被删除
地板
 楼主| 发表于 2015-1-30 09:47:13 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
第二个灵魂 该用户已被删除
5#
发表于 2015-2-6 09:43:51 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
金色的骷髅 该用户已被删除
6#
发表于 2015-2-15 22:09:11 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
乐观 该用户已被删除
7#
发表于 2015-3-4 15:00:28 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
8#
发表于 2015-3-11 20:08:41 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
简单生活 该用户已被删除
9#
发表于 2015-3-19 11:04:57 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-19 08:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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