仓酷云

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

[学习教程] ASP网页编程之ASP写进呼应流的最高效力测试了局

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

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

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

x
ASP脚本是采用明文(plaintext)方式来编写的。呼应|呼应本篇教程次要先容:将ASP天生的内容写进呼应流中最无效的办法,即用Response.Write和<%=%>向客户端输入内容时的效力测试。


  利用ASP的一个最次要缘故原由是在服务器上天生静态内容。以是很分明,我们测试的出发点是断定将静态内容发送到呼应流中的最合适的体例。

在多种选择中,有两个是最基础的:一是利用内联ASP标志,另外一个是利用Response.Write语句。

  为测试这些选择,我们创立了一个复杂的ASP页面,个中界说了一些变量,然后将它们的值拔出表格中。固然这个页面很复杂也不是很有用

,但它同意我们分别并测试一些独自的成绩。

  利用ASP内联标志

  第一个测试包含利用内联ASP标志<%=x%>,个中x是一个已赋值的变量。到今朝为止,这个办法是最简单实行的,而且它使页面的HTML部分

坚持一种易于浏览和保护的格局。

<%
OPTIONEXPLICIT此句感化是强迫利用每一个变量前必需先界说

DimFirstName
DimLastName
DimMiddleInitial
DimAddress
DimCity
DimState
DimPhoneNumber
DimFaxNumber
DimEMail
DimBirthDate
FirstName="John"
MiddleInitial="Q"
LastName="Public"
Address="100MainStreet"
City="NewYork"
State="NY"
PhoneNumber="1-212-555-1234"
FaxNumber="1-212-555-1234"
EMail="john@public.com"
BirthDate="1/1/1950"
%>

  <HTML>
  <HEAD>
  <TITLE>ResponseTest</TITLE>
  </HEAD>
  <BODY>
  <H1>ResponseTest</H1>
  <TABLE>
  <tr><td><b>FirstName:</b></td><td><%=FirstName%></td></tr>
  <tr><td><b>MiddleInitial:</b></td><td><%=MiddleInitial%></td></tr>
  <tr><td><b>LastName:</b></td><td><%=LastName%></td></tr>
  <tr><td><b>Address:</b></td><td><%=Address%></td></tr>
  <tr><td><b>City:</b></td><td><%=City%></td></tr>
  <tr><td><b>State:</b></td><td><%=State%></td></tr>
  <tr><td><b>PhoneNumber:</b></td><td><%=PhoneNumber%></td></tr>
  <tr><td><b>FaxNumber:</b></td><td><%=FaxNumber%></td></tr>
  <tr><td><b>EMail:</b></td><td><%=EMail%></td></tr>
  <tr><td><b>BirthDate:</b></td><td><%=BirthDate%></td></tr>
  </TABLE>
  </BODY>
  </HTML>

  /app1/response1.asp的完全代码

  之前的最好(反响速率)=8.28msec/page

  在HTML的每利用用Response.Write语句

  很多对照好的进修文档倡议制止利用后面的那种办法。其次要来由是,在输入页面和处置页面施加反响工夫的过程当中,假如web服务器不

得不在发送纯HTML和处置剧本之间举行转换,就会产生一种被称为高低文转换的成绩。年夜部分程序员一听到这里,他们的第一反响就是将原始

的HTML的每行都包装在Response.Write函数中。

  …

  Response.Write("<html>")
  Response.Write("<head>")
  Response.Write("<title>ResponseTest</title>")
  Response.Write("</head>")
  Response.Write("<body>")
  Response.Write("<h1>ResponseTest</h1>")
  Response.Write("<table>")
  Response.Write("<tr><td><b>FirstName:</b></td><td>"&FirstName&"</td></tr>")
  Response.Write("<tr><td><b>MiddleInitial:</b></td><td>"&MiddleInitial&"/td></tr>")

  …

  /app1/response2.asp的片断

  之前的最好(反响速率)=8.28msec/page

  反响工夫=8.08msec/page

  差=-0.20msec(削减2.4%)

  我们能够看到,利用这类办法与利用内联标志的办法比拟在功能上取得的收益十分小,这大概是由于页面给服务器装载了一年夜堆小的函数

挪用。这类办法最年夜的弱点是,因为如今HTML都嵌进剧本中,以是剧本代码变得加倍冗杂,加倍难以浏览和保护。

  利用包装函数

  当我们试图利用Response.Write语句这类办法时,最使人悲观的发明大概就是Response.Write函数不克不及在每行的开头处安排一个CRLF。

因而,当你从扫瞄器中浏览源代码时,原本安排得十分好的HTML,如今成了没有停止的一行。我想,你的下一个发明大概会更令你可怕:在

Response工具中没有其姊妹函数Writeln。以是,一个很分明的反响就是为Response.Write函数创立一个包装函数,以便给每行都附加一

个CRLF。

  …

  writeCR("<tr><td><b>FirstName:</b></td><td>"&FirstName&"</td></tr>")

  …

  SUBwriteCR(str)

  Response.Write(str&vbCRLF)

  ENDSUB

  /app1/response4.asp的片断

  之前的最好(反响速率)=8.08msec/page

  反响工夫=10.11msec/page

  差=+2.03msec(增添25.1%)

  固然,因为这类办法无效地使函数挪用次数更加,其对功能的影响也很分明,因而要不吝统统价值制止。具有取笑意味的是CRLF也向反响

流中为每行增添了2个字节,而这是扫瞄器不必要出现到页面上的。格局化优秀的HTML所做的统统就是让你的合作者更简单浏览你的HTML源代码

并了解你的计划。

  将一连的Response.Write毗连到一个独自语句中

  不思索我们后面用包装函数举行的测试,下一个符合逻辑的步骤就是从独自的Response.Write语句中提掏出一切的字符串,将它们毗连到

一个独自语句中,如许就削减了函数挪用的次数,极年夜地进步了页面的功能。

  …

  Response.Write("<html>"&_
"<head>"&_
  "<title>ResponseTest</title>"&_
  "</head>"&_
  "<body>"&_
  "<h1>ResponseTest</h1>"&_
  "<table>"&_
  "<tr><td><b>FirstName:</b></td><td>"&FirstName&"</td></tr</p>由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-20 11:46:12 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
分手快乐 该用户已被删除
板凳
发表于 2015-1-28 08:50:26 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
兰色精灵 该用户已被删除
地板
发表于 2015-1-29 06:33:22 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
精灵巫婆 该用户已被删除
5#
发表于 2015-1-31 06:20:30 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
老尸 该用户已被删除
6#
发表于 2015-2-1 18:51:41 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
若天明 该用户已被删除
7#
发表于 2015-2-3 12:13:45 来自手机 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
admin 该用户已被删除
8#
发表于 2015-2-3 20:35:19 | 只看该作者
那么,ASP.Net有哪些改进呢?
若相依 该用户已被删除
9#
发表于 2015-2-9 04:43:15 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
不帅 该用户已被删除
10#
发表于 2015-2-26 22:50:55 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
只想知道 该用户已被删除
11#
发表于 2015-3-8 18:23:16 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
小女巫 该用户已被删除
12#
发表于 2015-3-16 10:32:07 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
莫相离 该用户已被删除
13#
发表于 2015-3-22 22:10:39 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 03:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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