- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Web 窗体页处理.doc
Web 窗体页处理
一般来讲,Web 窗体页的生命周期类似于在服务器上运行的任何 Web 进程的生命周期。Web 处理的某些特性(通过 HTTP 协议传递的信息、Web 页的无状态特性等)应用到 Web 窗体页,就象它们在大多数 Web 应用程序中所做的一样。
但是,ASP.NET 页框架为您执行许多 Web 应用程序服务。例如,ASP.NET 页框架捕获由 Web 窗体页发送的信息,提取相关值,并使信息可通过对象属性访问。
理解在处理 Web 窗体页时发生的事件的顺序是十分重要的。这一知识将帮助您效率更高地对 Web 窗体页和 Web 应用程序进行编程。
Web 窗体页的生命周期
您可能会发现,在检查处理页面时页内所发生情况的详细信息前理解 Web 窗体页在 Web 应用程序中的工作方式的某些基本特性可能会很有帮助。
往返行程
需要理解的最重要概念之一就是 Web 窗体页中工作的划分。浏览器向用户展示一个窗体,用户与该窗体进行交互,这导致该窗体回发到服务器。但是,因为与服务器组件进行交互的所有处理必须在服务器上发生,这意味着对于要求处理的每一操作而言,必须将该窗体发送到服务器、进行处理、然后返回到浏览器。这一事件序列称作“往返行程”。
注意 可以在 Web 窗体中创建客户端脚本,这对于用户输入验证和某些 UI 编程类型十分有用。客户端脚本不与服务器组件交互。
假设这样一种业务方案:用户输入一个订单并且您要确认对该订单有足够的库存,因而您的应用程序在用户订单输入过程中的一个合适的时间点将该页发送给服务器。服务器进程检查该订单,执行库存查找,可能执行在业务逻辑中定义的某些操作(例如修改该页以指示一个错误),然后将该页返回到用户的浏览器以继续。
往返行程
在 Web 窗体中,大多数用户操作(例如单击一个按钮)将导致往返行程。因此,ASP.NET 服务器控件中的可用事件通常仅限于 Click 类型的事件。大多数服务器控件公开一个 Click 事件,该事件要求显式的用户操作。
通过相同的标记,服务器控件不公开诸如 onmouseover 之类的高频率事件,因为每次引发此类事件时,将发生到服务器的另一个往返行程,这将显著影响窗体中的响应时间。
重新创建页(视图状态和状态管理)
在任何 Web 方案中,每一次往返行程都需要重新创建页。只要服务器完成处理并完成将页发送到浏览器,它就放弃该页的信息。通过在每一请求后释放服务器资源,可以扩展 Web 应用程序以支持数百或数以千计的同时运行的用户。下一次发送该页时,服务器重新开始创建和处理该页;因此,认为 Web 页是“无状态的”——在服务器上不保留页变量和控件的值。
注意 可以将服务器配置为缓存页信息以优化页,但出于应用程序编程目的,将这些页视作服务器一完成对它们的处理就处置它们最为清晰。
在传统的 Web 应用程序中,服务器所具有的有关一个窗体的唯一信息就是用户已添加到窗体的控件上的信息,因为当发送窗体时将这些信息发送给服务器。其他信息(例如变量值和属性设置)将被放弃。
ASP.NET 通过以下方法克服了这些限制:
它在往返行程间保存页和控件属性。这称作保存控件的视图状态。
它提供状态管理功能,以便您可以在往返行程间保存您自己的变量和特定于应用程序或特定于会话的信息。
它可以检测是第一次请求窗体还是发送窗体,这使您可以相应地进行编程。您可能希望页回发期间的行为与初始请求的行为不同。
事件驱动模型与线性处理模型的优点
如果您具有使用 Active Server Pages (ASP) 的经验,您将认识到 ASP 是线性处理模型。ASP 页是按从上到下的顺序处理的。ASP 代码和静态 HTML 的每一行都按其在文件中的显示顺序进行处理。在往返行程中用户操作导致页被发送到服务器。因为此操作导致往返行程,所以服务器必须重新创建该页。在重新创建该页后,将通过与以前相同的从上到下的顺序对该页进行处理,因此,该页未表现出真正的事件驱动行为。若要创建事件驱动体验,您需要显式设计它。此外,您必须在最基本的级别上显式维护页和控件状态。此模型限制了可以组合的用户界面的丰富程度,并且此模型增加了需要支持它的代码的复杂性。
与此相比,传统 Visual Basic 应用程序中的事件驱动模型包含可编程的元素,这些元素可被初始化并在窗体上显示。用户与这些元素进行交互,而这又导致引发调用事件处理程序的事件。此模型支持真正的事件驱动行为,这在设计上极大拓宽了可以组合的用户界面的丰富程度,并且降低了需要支持它的代码的复杂性。
ASP.NET 通过模拟事件驱动模型的行为代替了 ASP 的线性处理模型。提供 ASP.NET 页框架以隐式地为您建立事件和事件处理程序的关联。利用该页框架,您可以很容易地创建响应用户操作的
文档评论(0)