海妖 发表于 2015-1-16 22:11:00

ASP教程之进步ASP功能的最好挑选2

想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的功能  是不是应当开启缓冲器?
  经由过程剧本程序启动缓冲器

  在ASP剧本的顶部包括Response.Buffer=True,IIS就会将页面的内容缓存。

  <%OPTIONEXPLICIT

  Response.Buffer=true

  DimFirstName

  …

  /app1/buffer__1.asp的片断

  之前的最好(反响工夫)=7.05msec/page

  反响工夫=6.08msec/page

  差=-0.97msec(下降13.7%)

  功能失掉了极年夜进步。可是等等,还能有更好的。

  经由过程服务器设置启动缓冲器

  固然在IIS5.0中缓冲器是被默许启动的,可是在IIS4.0中还必需手动来启动它。这时候要找到站点的Properties对话框,在那边,从HomeDirectory标签当选择设置按钮。然后在"Appoptions"下选择"enablebuffering"。关于这个测试,Response.Buffer语句从剧本中被移走了。

  之前的最好=7.05msec/page

  反响工夫=5.57msec/page

  差=-1.48msec(下降21.0%)

  今朝,这是我们所失掉的最快反响了,比我们之前最好情形下的反响工夫还要下降21%。从如今入手下手,我们今后的测试都要把这个反响工夫作为基准值。

  回忆及观察

  缓冲器是进步功能的好办法,以是把缓冲器设置成服务器的默许值很有需要。假如由于某些缘故原由,页面不克不及准确地使缓冲器运转,只必要Response.Buffer=False命令便可。缓冲器的一个弱点是在全部页面处置完之前,用户从服务器看不就任何器材。因而,在庞大页面的处置时代,偶而挪用一次Response.Flush来更新用户是个好主张。

  如今在我们的划定规矩中又增添了一条:老是经由过程服务器设置开启缓冲器。

  是不是应当思索向ASP代码中增添正文?
  年夜部分HTML开辟职员都晓得包括HTML正文不是个好主张,起首会增添传输数据的范围,其次它们只是向其余开辟职员供应有关你页面构造的信息。可是ASP页面上的正文又怎样呢?它们历来不分开服务器,但也的确要增添页面的范围,因而必需用ASP举行分化。

  在此次的测试中,我们增添20条正文,每条有80个字符,统共有1600个字符。

  <%OPTIONEXPLICIT

  -------------------------------------------------------------------------------

  …20lines…

  -------------------------------------------------------------------------------

  DimFirstName

  …

  /app2/comment_1.asp片断

  基准=5.57msec/page

  反响工夫=5.58msec/page

  差=+0.01msec(增添0.1%)

  测试的了局是惊人的。固然正文几近相称于文件自己的两倍,可是它们的存在并没有给反响工夫带来很年夜的影响。以是说我们能够遵守以下划定规矩:

  只需利用过度,ASP正文对功能的影响很小或基本没有影响。

  是不是应当为页面明白地设置默许言语?
  IIS处置VBScript是默许的设置,可是我看到,在年夜多半例子中仍是用<%@LANGUAGE=VBSCRIPT%>声明将言语明白地设置为VBScript。我们的下一个测试将查验这个声明的存在对功能有甚么影响。

  <%@LANGUAGE=VBSCRIPT%>

  <%OPTIONEXPLICIT

  DimFirstName

  …

  /app2/language1.asp片断。

  基准值=5.57msec/page

  反响工夫=5.64msec/page

  差=+0.07msec(增添1.2%)

  能够看到,包括了言语的声明对功能有一个稍微的影响。因而:

  *设置服务器的默许言语设置以与站点上利用的言语相婚配。

  *除非你利用非默许言语,不要设置言语声明。

  假如不必要,是不是应当封闭Session形态?
  制止利用IIS的Session高低文有很多来由,那些已能够自力成为一篇文章。我们如今试图回覆的成绩是当页面不必要时,封闭Session高低文是不是对功能进步有所匡助。从实际上讲应当是一定的,由于如许一来就不必要用页面例示Session高低文了。

  同缓冲器一样,Session形态也有两种设置办法:经由过程剧本和经由过程服务器设置。

  经由过程剧本封闭Session高低文

  关于这个测试,要封闭页面中的Session高低文,我增添一个Session形态声明。

  <%@ENABLESESSIONSTATE=FALSE%>

  <%OPTIONEXPLICIT

  DimFirstName

  …

  /app2/session_1.asp片断。

  基准值=5.57msec/page

  反响工夫=5.46msec/page

  差=-0.11msec(下降2.0%)

  只经由过程如许一个小小的勉力就失掉了不错的前进。如今看看第二部分。

  经由过程服务器设置封闭Session高低文

  要在服务器上封闭Session高低文,请到站点的Properties对话框。在HomeDirectory标签上选择Configuration按钮。然后在"Appoptions"下作废"enablesessionstate"的选择。我们在没有ENABLESESSIONSTATE声明的情形下运转测试。

  基准值=5.57msec/page

  反响工夫=5.14msec/page

  差=-0.43msec(下降7.7%)

  这是功能的又一个明显进步。以是,我们的划定规矩应是:在不必要的情形下,老是在页面或使用程序的程度上封闭Session形态。

  利用OptionExplicit会使功能有本色改动吗?
  在一个ASP页面的顶部设置OptionExplicit以请求一切的变量在利用之前都要在页面长进行声明。这有两个缘故原由。起首使用程序能够更快地处置变量的存取。其次,如许能够避免我们偶然中错用变量的名字。在这个测试中我们移走OptionExplicit援用和变量的Dim声明。

  基准值=5.57msec/page

  反响工夫=6.12msec/page

  差=+0.55msec(9.8%增添)、

  只管有一些代码行从页面中往失落了,反响工夫却仍然增添了。以是只管利用Optionexplicit偶然候费工夫,可是在功能上却有很明显的效果。因而我们又能够增添一条划定规矩:在VBScript中老是利用Optionexplicit。
  是不是应当把剧本逻辑放在子程序和函数区?
  用函数和子程序来构造和办理代码是一个很好的办法,出格是当一个代码区在页面中屡次利用的情形。弱点是要在体系上增添一个做不异事情的分外函数挪用。子程序和函数的另外一个成绩是变量的局限。从实际上说,在一个函数区内指定变量更无效。如今我们看看这两个方面怎样产生感化。

  将Response.Write语句移进子程序

  这个测试只是将Response.Write语句移进一个子程序区内。

  …

  CALLwriteTable()

  SUBwriteTable()

  Response.Write("<html>"&_

  "<head>"&_

  …

  "<tr><td><b>EMail:</b></td><td>"&EMail&"</td></tr>"&_

  "<tr><td><b>BirthDate:</b></td><td>"&BirthDate&"</td></tr>"&_

  "</table>"&_

  "</body>"&_

  "</html>")

  ENDSUB

  /app2/function1.asp片断

  基准值=5.57msec/page

  反响工夫=6.02msec/page

  差=+0.45msec(8.1%增添)

  同意料中一样,子程序挪用给页面带来了分外的包袱。

  将一切剧本移进子程序中

  在这个测试中,Response.write语句与变量声明都移进一个子程序区中。

  <%OPTIONEXPLICIT

  CALLwriteTable()

  SUBwriteTable()

  DimFirstName

  …

  DimBirthDate

  FirstName="John"

  …

  BirthDate="1/1/1950"

  Response.Write("<html>"&_

  "<head>"&_

  "<title>ResponseTest</title>"&_

  "</head>"&_

  "<body>"&_

  "<h1>ResponseTest</h1>"&_

  "<table>"&_

  "<tr><td><b>FirstName:</b></td><td>"&FirstName&"</td></tr>"&_

  …

  "<tr><td><b>BirthDate:</b></td><td>"&BirthDate&"</td></tr>"&_

  "</table>"&_

  "</body>"&_

  "</html>")

  ENDSUB

  /app2/function2.asp片断

  基准值=5.57msec/page

  反响工夫=5.22msec/page

  差=-0.35msec(6.3%下降)

  十分风趣!只管将变量移到函数局限内增添了分外的函数挪用,但实践上却进步了功能。我们又能够增添以下划定规矩:

  *在一个页面上,假如代码要利用一次以上,就将代码封进函数区。

  *得当时分,将变量声明移到函数局限内。
  利用包括文件有甚么影响?
  ASP编程的一个主要功效就是包括来自别的页面的代码。经由过程这项功效,程序员能够在多个页面上共享函数,使代码更容易于保护。弱点在于服务器必需从多个来历组装页面。以下是利用Include文件的两个测试。

  利用内联代码的Include文件

  在这个测试中,有一小段代码被移到一个Include文件中:

  <%OPTIONEXPLICIT

  DimFirstName

  …

  DimBirthDate

  FirstName="John"

  …

  BirthDate="1/1/1950"

  %>

  <!--#includefile="inc1.asp"-->

  /app2/include_1.asp片断

  基准值=5.57msec/page

  反响工夫=5.93msec/page

  差=+0.36msec(6.5%增添)

  这不奇异。利用Include文件构成了负载。

  在函数区利用Include文件

  在这里,代码都包装在一个Include文件中的子程序里。Include援用是在页面顶部举行的,在ASP剧本的得当地位挪用子程序。

  <%OPTIONEXPLICIT

  DimFirstName

  …

  DimBirthDate

  FirstName="John"

  …

  BirthDate="1/1/1950"

  CALLwriteTable()

  %>

  <!--#includefile="inc2.asp"-->

  /app2/include_2.asp片断

  基准值=5.57msec/page

  反响工夫=6.08msec/page

  差=+0.51msec(9.2%增添)

  这对功能酿成的影响比functions挪用还年夜。因而:只要今世码在页面之间共享时才利用Include文件。
  实行毛病处置时会构成多年夜的负载?
  关于一切真实的使用程序来讲,毛病处置都是需要的。这个测试中,经由过程挪用OnErrorResumeNext函数来挪用毛病句柄。

  <%OPTIONEXPLICIT

  OnErrorResumeNext

  DimFirstName

  …

  /app2/error_1.asp片断

  基准值=5.57msec/page

  反响工夫=5.67msec/page

  差=0.10msec(1.8%增添)

  你能够看到,毛病句柄带来了价值。我们能够提出以下倡议:只要在会产生超越测试或把持才能以外的情形时才利用毛病句柄。一个最基础的例子就是利用存取别的资本,如ADO或FileSystem工具的COM工具。
  设置一个高低文处置是不是对功能有影响?
  当毛病产生时,在页面上设置一个高低文处置同意剧本举行反转操纵。这是经由过程在页面上利用处置声明来设置的。

  <%@TRANSACTION=REQUIRED%>

  <%OPTIONEXPLICIT

  DimFirstName

  …

  /app2/transact1.asp片断

  基准值=5.57msec/page

  反响工夫=13.39msec/page

  差=+7.82msec(140.4%增添)

  啊!这实在最具有戏剧性的了局。以是请寄望以下划定规矩:只要当两个或更多操纵被作为一个单位实行时,才利用处置高低文。
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。

小妖女 发表于 2015-1-18 21:49:29

掌握asp的特性而且一定要知道为什么。

爱飞 发表于 2015-1-25 06:37:08

不能只是将它停留在纸上谈兵的程度上。

因胸联盟 发表于 2015-2-2 17:47:07

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

金色的骷髅 发表于 2015-2-8 03:39:03

那么,ASP.Net有哪些改进呢?

灵魂腐蚀 发表于 2015-2-24 05:16:16

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

乐观 发表于 2015-3-7 11:06:01

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

柔情似水 发表于 2015-3-15 04:05:31

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

变相怪杰 发表于 2015-3-21 19:05:46

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

冷月葬花魂 发表于 2015-3-21 19:05:46

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
页: [1]
查看完整版本: ASP教程之进步ASP功能的最好挑选2