基础知识之剖析ASP.NET页面
2006-04-27 11:19
639 查看
最近感到自己的知识真的很薄弱,于是拿起书本开始从基础知识部分开始学起,其实这个想法也来自刁刁对我的学习建议,如果不把基础的知识和基础的原理了解清楚,学习后面的知识相对起来比较困难,现在我现在确实存在这样的问题,一些问题我能够解决,但是如果深追起为什么要这样做的时候,自己也说不清楚个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的学习,我了解了其工作原理。
做了很多关于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的学习,我了解了其工作原理。
相关文章推荐
- asp.net架构基础知识--页面以及全局事件
- 基础知识:什么是ASP.NET Razor页面?
- ASP.Net MVC开发基础学习笔记(8):新建数据页面
- 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(基础知识以及简单示例)
- 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(基础知识以及简单示例)
- ASP,PHP,JSP,ASP.NET基础知识
- Asp.net 基础知识
- ASP.NET中Cookie编程的基础知识(1)
- ASp.NET基础知识
- ASP.NET中的C#基础知识
- ASP.NET中Cookie编程的基础知识(1)
- asp.net基础学习之前端页面布局
- ASP.NET中Cookie编程的基础知识(2)
- ASP.NET基础知识(本文章来自于互联网,感谢原作者的辛勤劳动,摘抄在此仅作为学习使用!)
- WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构
- 【原创】构建高性能ASP.NET站点之一 剖析页面的处理过程(前端)
- ASP.NET的SEO:基础知识 (1)
- ASP.NET中Cookie编程的基础知识(1)
- ASP.NET页面跳转相关知识
- ASP.NET页面跳转相关知识