|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)asp.net|web 假如你具有利用ActiveServerPages(ASP)的履历,你将熟悉到ASP是线性处置模子。ASP页是按从上到下的按次处置的。ASP代码和静态HTML的每行都按其在文件中的显现按次举行处置。在往复路程顶用户操纵招致页被发送到服务器。由于此操纵招致往复路程,以是服务器必需从头创立该页。在从头创立该页后,将经由过程与之前不异的从上到下的按次对该页举行处置,因而,该页未体现出真实的事务驱动举动。若要创立事务驱动体验,你必要显式计划它。别的,你必需在最基础的级别上显式保护页和控件形态。此模子限定了能够组合的用户界面的丰厚水平,而且此模子增添了必要撑持它的代码的庞大性。 与此比拟,传统VisualBasic使用程序中的事务驱动模子包括可编程的元素,这些元素可被初始化并在窗体上显现。用户与这些元素举行交互,而这又招致激发挪用事务处置程序的事务。此模子撑持真实的事务驱动举动,这在计划上极年夜拓宽了能够组合的用户界面的丰厚水平,而且下降了必要撑持它的代码的庞大性。
ASP.NET经由过程摹拟事务驱动模子的举动取代了ASP的线性处置模子。供应ASP.NET页框架以隐式地为你创建事务和事务处置程序的联系关系。使用该页框架,你能够很简单地创立呼应用户操纵的用户界面。
起首,我们必需先懂得一下Web窗体的性命周期,才干更好的懂得Web窗体的形态办理。
一个Web窗体的性命周期相似于在服务器中运转的Web历程的性命周期。一个Web窗体从实例化分派内存空间各处理停止开释内存,一样平常履历上面4个步骤:初始化、页面装载、事务处置和资本清算。
(1)页面初始化
当页面被初始化时,产生第一个事务Page_Init。体系会实行创立和设置一个例示所必要的一切初始化步骤。
(2)页面装载
页面装载在初始化以后,所产生的事务叫做Page_Load,它的用处以下:
依据Page.IsPostBack属性反省页面是否是第一次被处置;
第一次处置页面时实行数据绑缚,大概在今后的轮回过程当中从头判别数据绑缚表达式;
读取和更新控件属性;
恢复在保留步骤中所保留的前一个客户哀求的形态;
(3)事务处置
Web窗体上的每一个举措都激活一个抵达服务器的事务。一个Web窗体有两个视图:一个客户视图和一个服务器视图。一切的数据处置都在服务器长进行。当经由过程点击鼠标或别的办法引发一个事务时,事务就抵达服务器并前往响应的数据。
(4)资本清算
最初一步产生于一个窗体完成了它的义务而且筹办卸载的时分,这时候激活Page_Unload事务,完成最初的资本清算事情,好比:封闭文件,封闭数据库毗连,抛弃工具。
我们晓得基于Web的会见体例是断开式的,Web页面是无形态性的。而于ASP中的线性驱动体例分歧的是ASP.NET接纳的是事务驱动形式,那末,Web窗体是怎样做到ASP.NET页面形态的保护的呢?在ASP.NET中引进了一个观点:ViewState,从而用ViewState来保留页面的形态信息。
除第一次的会见哀求是有基类天生之外,今后每次客户真个回传都是依据客户端传来的页面形态来从头创立页面。而页面的各个形态信息就保留在客户端页面源文件的埋没字段<inputtype="hidden"name="__VIEWSTATE"value=""/>中,我们能够经由过程扫瞄器检察到它,value的值就是经由加密的页面形态信息。服务器依据value值举行窗体的再现,然后在窗体的事务处置阶段举行实行呼应的事务历程,然后把实行了局前往到客户端,而且改动Web窗体的形态值,并回写到value值中。最初抵达资本清算阶段。全部历程就是一个Web窗体的性命周期,同时也完成了页面形态的办理。
上面这个实例演示了ASP.NET页面框架是怎样保护页面形态的。一切代码以下:
<%@PageLanguage="VB"%>
<scriptrunat="server">
SubButton1_Click(senderAsObject,eAsEventArgs)
使viewstate(“value”)的值增1
viewstate("value")+=1
Label1.Text="这是第"&Str(viewstate("value"))&"点击按钮"
EndSub
subpage_Load(senderAsObject,eAsEventArgs)
判别是不是为第一次处置该页面
假如是则使viewstate类保留键value的值为0
IfNotPage.IsPostBackThen
viewstate("value")=0
Label1.Text="这是第"&Str(viewstate("value"))&"点击按钮"
EndIf
endsub
</script>
<html>
<head>
<title>页面形态办理</title>
</head>
<bodyms_positioning="GridLayout">
<formid="Form1"method="post"runat="server">
<asp:Labelid="Label1"runat="server"width="176px"></asp:Label>
<br/>
<asp:Buttonid="Button1"runat="server"Text="点击累加"></asp:Button>
</form>
</body>
</html>
保留为viewstate.aspx,运转了局如.9所示。
在客户真个扫瞄器中,我们检察源文件,能够检察到的埋没字段的值为:
<inputtype="hidden"name="__VIEWSTATE"value="dDwtOTk1MjE0NDA4O3Q8cDxsPHZhbHVlOz47bDxpPDM+Oz4+O2w8aTwxP
js+O2w8dDw7bDxpPDE+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPOi/meaYr+esrCAz54K5
5Ye75oyJ6ZKuOz4+Oz47Oz47Pj47Pj47PmLc5pTevWJok9DSup0E5RUygUMi"/>
而全部页面的形态信息就个中
你所列的那些其实差不多都可以称为应用服务器(servlet应该说是一种语言更合适)java是开放的,相同的工具就会有很多公司在做,加上java已经发展了很多年了,因此这些工具就很多了。他们很多都是类似的。 |
|