zoukankan      html  css  js  c++  java
  • 基础知识之剖析ASP.NET页面

       最近感到自己的知识真的很薄弱,于是拿起书本开始从基础知识部分开始学起,其实这个想法也来自刁刁对我的学习建议,如果不把基础的知识和基础的原理了解清楚,学习后面的知识相对起来比较困难,现在我现在确实存在这样的问题,一些问题我能够解决,但是如果深追起为什么要这样做的时候,自己也说不清楚个why出来,以前一直很忽略基础方面的知识,从现在开始我必须从头学习。
      做了很多关于ASP.NET的项目,但是从来没有想过这些ASPX页面是怎样执行的。看了剖析ASP.NET页面章节后才有了一些了解,现总结如下:
      在刚刚开始编写ASPX页面时,ASP.NET代码和HTML代码是混合写在一起,还没有现实分离。下面就对这些混合代码进行剖析。
      1.先了解Web页面的工作原理:
       a.编写代码;b.当客户端请求Web页面; c.Web服务器处理Web页面中非Html代码(即ASP.NET代码),并将起转换成Html流; d.浏览器显示web服务器处理后的Html页面。
      了解了Web页面的工作原理,对理解ASP.NET是如何运行会变得简单。
      2.ASP.NET如何运行:
       首先我们运用一些代码说明:
       a. <Script Language=C# runat=Server>
          void Page_Load()
          {
            Respone.Write("First HTML Line<br/>");
            Respone.Write("Second HTML Line<br/>");
            Respone.Write("Third HTML Line<br/>");
          }
          </Script>
          <Html>
          <Head>
          <Title>ASP.NET code Example></Title>
          </Head>
          <Body>
            Line1:First HTML Line<br/>
            Line2:Second HTML Line<br/>
            Line3:Third  HTML Line<br/>
          </Body>
          </Html>
         输出结果为:First HTML Line
                     Second HTML Line
                     Third HTML Line
                     Line1:First HTML Line
                     Line2:Second HTML Line
                     Line3:Third  HTML Line
                    
        分析如下:无论<Script runat=Server>标记符放在Html的任何位置,它都是被首先处理。原因是Web服务器首先扫描文件以查看是否有<Script runat=Server>标记符。如果找到一个,它就会被安排首先处理脚本。
    换句话说,服务器不注意<Script>标记符相对于页面中其他元素的位置。
        为什么会有这样的输出结果?那是因为服务器首先处理<Script>标记符,而Page_Load()在<Script>标记符中,而ASP.Net代码放在代码块Page_Load()中。ASP.NET载入页面时,它首先会执行Page_Load()中所有代码。

       我们现在再看一个Example,代码如下:
       <Script Language=C# runat=Server>
          void Page_Load()
          {
            Message.Text="The ASP.NET Line";
           }
        <Script>
        <Html>
        <Head>
        <Title>ASP.NET code Example</Title>
        </Head>
        <Body>
          First Html Line<br/>
          <asp:Label id=Message runat=Server/><br/>
          Second Html Line<br/>
        </Body>
        </Html>
        输出结果:First Html Line
                  The ASP.NET Line
                  Second Html Line
        当开始看到这里时,我也怀疑过这个输出结果,我认为的输出结束顺序是The ASP.NET Line、First Html Line、Second Html Line,那是因为在上面那个Example中,我们了解执行会从<Script>标记符开始,但是仔细想想我的这种想法is wrong,because上面的Example只是说web服务器的执行顺序,但是输出的结果还是会根据Html中设定的Place进行输出,上面Example会有那样的输入结果是因为Html没有输出位置要求,当然先执行的先输出,但是this Example中,Html页面有了一定输出要求,so输出结果才是这样的。
       通过对以上Example的学习,我了解了其工作原理。

  • 相关阅读:
    Java的字节流,字符流和缓冲流对比探究
    团队作业4:第七篇Scrum冲刺博客(歪瑞古德小队)
    团队作业4:第六篇Scrum冲刺博客(歪瑞古德小队)
    团队作业4:第五篇Scrum冲刺博客(歪瑞古德小队)
    团队作业4:第四篇Scrum冲刺博客(歪瑞古德小队)
    EACCES: permission denied,mkdir … npm install 安装依赖问题解决
    100% 展示 MySQL 语句执行的神器-Optimizer Trace
    关于冲击响应的通俗理解
    struct中的对齐准则
    NIO实践-HTTP交互实现暨简版Tomcat交互内核
  • 原文地址:https://www.cnblogs.com/yuyu/p/386404.html
Copyright © 2011-2022 走看看