知识大全 ASP.NET与ASP编译与解释的区别

Posted

篇首语:知是行的主意,行是知的功夫。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET与ASP编译与解释的区别相关的知识,希望对你有一定的参考价值。

ASP.NET与ASP编译与解释的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   年 月Microsoft公司发布 NET计划以来 使编程工作在业界中引起了一次划时代的革命 ASP NET是 NET计划中的一个重要组成部分 其为Web应用程序开发人员提供了许多新特性 这些特性包括已编译的服务器端代码 一种将服务器端逻辑与客户端布局相分离的代码隐藏(code behind)技术 可扩展的服务器端控件模型 设计数据绑定模型 xcopy部署以及客户和服务器上的窗体身份证验证支持等

  ASP NET作为一种先进的Web应用程序开发技术 相对于ASP具有革命性的进步 其使用编译后的语言(包括元数据 IL等资源) 这是 aspx文件运行性能大大提升的一个主要原因 也是ASP NET不同于以往的ASP的显著地方 ASP NET第一次装载页面的速度较慢 但以后加载该页面的速度是ASP不能比拟的 其速度飞快 这是因为ASP NET在第一次访问网页时所需要开销有 加载ASP NET工作者进程 对 aspx 文件进行语法分析并将其编译成一个可执行的程序集 这一点与ASP引擎执行服务器代码是不同的 因为ASP总是每次执行时都是将服务器代码交给Jscript或VBScript解释器来进行解析

  ASP NET在技术上没有叫做ASP 但从许多方面来讲 它就是ASP 版本 我们可以从下面的两个例子看出 aspx文件与 asp文件的相似之处

  例程 ASPX页面示例

  <! File:test aspx >

  <%@ Page  language= C# %>

  <script  runat=server>

  int Add(int x int y)

  

  return x+y;

  

  </script>

  <>

  <body>

  <table border= >

  <tr>

  <td>两数之和为 </td><td><%=Add( )%></td>

  </tr>

  </table>

  </body>

  </>

  例程 ASP页面示例

  <! File:test asp >

  <%@  language=Jscript%>

  <script  language= JScript   runat=server>

  function  Add(x y)

  

  return x+y;

  

  </script>

  <>

  <body>

  <table border= >

  <tr>

  <td>两数之和为 </td><td><%=Add( )%></td>

  </tr>

  </table>

  </body>

  </>

  以上两个例程的<></>里的代码是相同的 不同的是 <%%>声明使用的语言 两段代码都是在服务器端运行 但是 当访问这两个文件时 其背后所发生的事情却截然不同 我们先来分析test asp文件的运行机制 当执行test asp文件时 服务器对网页中的文本要进行线性解析 提取所有不是服务器端脚本的内容并作为响应返回 而网页中的服务器端脚本(我们在test asp文件的脚本中加入了runat=server属性)首先要通过Jscript解释器来解析执行 执行结果作为响应返回 所以 ASP文件的运行机制在几个方面影响了网页生成(也就是我们平时所说的程序运行)速度变慢 影响 ASP网页效率的几个方面是 首先 随机解释服务器端脚本比在服务器上执行预编译的代码效率更低 因此 要对ASP应用程序进行优化 比较通用的方法就是将大量的服务器端脚本移入预编译的组件中 这样就可以有效的提高网页的响应速度 第一的方面是 由于要不断地调用解释器 混合使用静态的HTML和服务器端求值语句脚本块比只用一个服务器端脚本块的效率更低 因此 为了提高应用程序的执行效率 有些ASP开发人员通常使用Response Write()调用取代静态的HTML元素 最终导致了一个ASP页面上使用多种脚本语言来编写从而大大降低了应用程序的执行效率 现在 我们再来分析一下test aspx文件的运行机制 在该例中使用c#语言来编写的脚本 所以在服务器端CLR使用相应的C#编译器把这些代码编译成一种叫做IL汇编语言并保存到程序集中 使用CLR 无论你使用何种语言(C# VB NET Jscript 等)编写的脚本 最终都被编译成IL汇编语言 程序集的生成过程如下图所示

  

  由上图可以看出 程序集中既包括服务器端代码又包括静态HTML语句 因此 只要第一次访问了某个 ASPX页面 以后生成该页面时只需执行已编译好的代码即可 就是ASP NET网页最终都被编译成 NET类( NET框架中组件也叫做类) 所以 在一个 aspx文件中不可能使用多种服务器端语言 这样就解决了传统的ASP脚本模型的所有有关效率低的问题 所以说 ASP NET是ASP的升级版本

cha138/Article/program/net/201311/13470

相关参考

知识大全 ASP.NET入门教程 10.4.1 ASP.NET2.0中的编译

ASP.NET入门教程10.4.1ASP.NET2.0中的编译  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 ASP.NET 2.0的编译模型

ASP.NET2.0的编译模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  支持两种编译模型(

知识大全 浅析ASP.NET编译器

浅析ASP.NET编译器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  要深入理解ASPNET动

知识大全 ASP.NET预编译Web应用程序规避调用延迟

ASP.NET预编译Web应用程序规避调用延迟  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  A

知识大全 asp.net bind()和eval()的区别

   eval()方法      在运行时使用反射执行后期绑定计算因此与标准的ASPNET数据绑定方法bind

知识大全 ASP.NET和ASP的区别

ASP.NET和ASP的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET拥有更好

知识大全 asp.net源程序编译为dll文件并调用过程

  使用csc命令将cs文件编译成dll的过程很多时候我们需要将cs文件单独编译成dll文件 操作如下:打开命令窗口>输入cmd到控制台>cd C:WINDOWSMic

知识大全 在ASP与ASP.NET之间共享对话状态(1)

在ASP与ASP.NET之间共享对话状态(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前

知识大全 ASP与ASP.NET转换Session数据桥的应用

ASP与ASP.NET转换Session数据桥的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET的GET和POST的区别

ASP.NET的GET和POST的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &