ASP网页设计ASP技能集锦(官方威望版)-6
对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。技能 技能16:在入手下手长工夫的义务之前先利用Response.IsClientConnected假如用户得到耐烦,他们能够在入手下手实行他们的哀求之前保持ASP页。假如他们单击了Refresh或跳转到服务器的其他页上,在ASP哀求行列的开端将有一个新的哀求,而在行列的两头有一个断开毗连的哀求。这一般产生在服务器处于高负荷的情形下(它有一个很长的哀求行列,响应的呼应工夫也很长),这只能使情形更糟。假如用户不再毗连,将没有实行ASP页的点(出格是低速、分量级的ASP页)。可使用Response.IsClientConnected属性反省这类情形。假如它前往False,则应挪用Response.End并保持该页的残剩内容。实践上,每当ASP要实行新的哀求时,IIS5.0便将该办法编码,来反省行列中的哀求有多长。假如在那边凌驾了3秒钟,ASP会反省客户是不是仍旧毗连着,假如客户已断开毗连,就当即停止该哀求。您可使用metabase中的AspQueueConnectionTestTime设置,调剂这3秒的超不时间。
假如有某页实行了很长工夫,您大概还想按必定的工夫距离反省Response.IsClientConnected。在启用呼应缓冲以后,按必定的工夫距离实行Response.Flush,告知用户正在举行的是哪些事变,是个好举措。
注重在IIS4.0中,Response.IsClientConnected将不克不及一般事情,除非起首实行Response.Write。假如启用了缓冲,也必要实行Response.Flush。在IIS5.0中则不用云云-Response.IsClientConnected事情得很好。在任何情形下,Response.IsClientConnected都要有些开支,以是,只要在实行最少要用500毫秒(假如想保持每秒几十页的吞吐量,这是一个很长的工夫了)的操纵前才利用它。作为一般的划定规矩,不要在严密轮回的每次迭代中挪用它,比方当绘制表中的行,大概每20行或每50行挪用一次。
技能17:利用<OBJECT>标志实例化工具
假如必要援用不克不及在一切代码路径中利用的工具(特别是服务器-或使用程序-感化域的工具),则利用Global.asa中的<objectrunat=serverid=objname>标志来声明它们,而不是利用Server.CreateObject办法。Server.CreateObject立即创立工具。假如今后不利用谁人工具,就不要华侈资本。<objectid=objname>标志声了然objname,但实践上objname此时并没有创立,直到它的办法或属性第一次被利用时才创立。
这是缓慢盘算的另外一个例子。
技能18:利用ADO工具和其他组件的TypeLib声明
当利用ADO时,开辟职员常常包括adovbs.txt来取得对ADO分歧常量的会见权。该文件必需包括在要利用这些常量的每页中。该常量文件十分年夜,给每一个ASP页增添了良多编译工夫和剧本巨细方面的开支。
IIS5.0供应了绑定到组件范例库的才能。同意您在每一个ASP页上援用一次范例库并利用它。每页不必要为编译常量文件支付价值,而且组件开辟职员不用为在ASP中的利用而天生VBScript#include文件。
要会见ADO范例库,请将以下语句之一放进Global.asa中。
<!--METADATANAME="MicrosoftActiveXDataObjects2.5Library"TYPE="TypeLib"UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->
大概
<!--METADATATYPE="TypeLib"FILE="C:ProgramFilesCommonFilessystemadomsado15.dll"-->
技能19:使用扫瞄器的考证才能
盛行的扫瞄用具有对以下功效的初级撑持,比方XML、DHTML、Java小程序和远程数据服务。请只管使用这些功效。一切这些手艺,都能够经由过程实行客户真个考证和数据缓存,削减了与Web服务器之间的往复。假如您正在运转智能扫瞄器,该扫瞄器能够为您举行一些考证(比方,在运转POST之前反省信誉卡的校验和否无效)。重申一次,请只管利用这些功效。因为减少了客户端到服务器的往复旅程,将削减对Web服务器的压力,而且减少了收集通讯量(固然发送给扫瞄器的初始页面大概更年夜),服务器会见的一切后端资本也减少了。并且用户不用常常提取新页,利用户的感觉好一些。这其实不加重对服务器端考证的必要。仍是应当常常举行服务器真个考证。如许可以避免因为某些缘故原由从客户端来的坏数据,比方黑客,大概不运转客户端考证程序的扫瞄器。
很多站点由自力于扫瞄器创立的HTML构成。这一点常常拦阻开辟职员使用能够进步功能的盛行扫瞄器功效。关于真正高功能的、必需体贴扫瞄器的站点,优秀的战略是针对盛行的扫瞄器优化您的页面。在ASP中利用“扫瞄器功能组件”,很简单检测到扫瞄器的功效。诸如MicrosoftFrontPage等工具,能匡助您计划利用所但愿的方针扫瞄器和HTML版本的代码。更具体的会商,请检察WhenisBetterWorse?WeighingtheTechnologyTrade-Offs(英文)。
技能20:在轮回中制止字符串串连
很多人在轮回中创立相似如许的字符串:
s="<table>"&vbCrLf
ForEachfldinrs.Fields
s=s&"<th>"&fld.Name&"</th>"
Next
WhileNotrs.EOF
s=s&vbCrLf&"<tr>"
ForEachfldinrs.Fields
s=s&"<td>"&fld.Value&"</td>"
Next
s=s&"</tr>"
rs.MoveNext
Wend
s=s&vbCrLf&"</table>"&vbCrLf
Response.Writes
这类办法有几个成绩。起首,反复毗连字符串所消费的工夫,以二次方曲线的速度增加;大略地盘算,运转轮回所消费的工夫,与纪录数乘以字段数的平方成反比。举一个复杂的例子,便能分明地申明这一点。
s=""
Fori=Asc("A")toAsc("Z")
s=s&Chr(i)
Next
在第一次迭代中,失掉一个字符的字符串“A”。在第二次迭代中,VBScript必需从头分派字符串并复制两个字符“AB”到s。在第三次迭代中,它必需再次从头分派s,并复制三个字符到s。在第N次(26次)迭代中,它必需从头分派并复制N个字符到s。就是1+2+3+...+N的和,为N*(N+1)/2次复制。
在以上纪录集的例子中,假如有100笔记录和5个字段,则外部的轮回将实行100*5=500次,而且完成一切复制和从头分派所消费工夫,将与500*500=250,000成反比。对一个巨细过度的纪录集,将有良多次复制。
在该例子中,代码能够改善:字符串的毗连将被Response.Write()或内嵌剧本(<%=fld.Value%>)所替换。假如翻开呼应缓冲,这个操纵将会很快,由于Response.Write仅仅将数据增加到呼应缓冲的开端。不再从头分派,因此十分无效。
出格是在将ADO纪录集转换到HTML表时,请思索利用GetRows或GetString。
假如用JScript毗连字符串,激烈倡议利用+=操纵符;即用s+="某字符串",而不是s=s+"某字符串"。源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
页:
[1]