2011-03-23 83 views
2

我是编程领域的新手,特别是在web基础编程中。我想学习关于州管理技术的最佳实践。我的意思是如何在asp.net中学习状态管理的最佳实践

当我们创建会话?

时使用会话如何检查空会话? ,

何时使用cookies?

何时使用隐藏字段?

所有的区别是什么?

在某个时间使用哪种技术?

应用程序如何因状态管理不成功而崩溃? 当我们开发Web应用程序时,我们需要关注哪些事情需要关注状态管理...... ???

有这么多问题。也许你们都知道。请帮我解决我的困惑。

在此先感谢!

+1

请把你的问题分成不同的问题。根据不同的情况,答案会有所不同,所以很难在这里给出合理的解释。 – 2011-03-23 11:44:56

回答

2
+1

谢谢,这些链接必须对我有帮助... – Liladhar 2011-03-24 06:42:16

1

听起来像你应该只需要做一些阅读。

Pro ASP.NET - 本书有关于国家管理的一章,但我打赌本书的其余部分对你也有帮助,因为你是初学者。

此外,MSDN有关于州管理和何时使用什么的一些很好的信息。

2

http://www.thedevheaven.com/2012/05/state-management.html

状态管理是由你保持状态和过程通过多个请求为相同或不同页面提供页面信息。

国家管理的类型

有2种状态管理:

  1. 客户端 - 端状态管理 这通过嵌入信息到网页存储在客户端计算机上的信息,统一资源定位器(url)或cookie。可用于在客户端存储状态信息的技术列举如下:

a。视图状态 - Asp.Net使用视图状态来跟踪控件中的值。您可以将自定义值添加到视图状态。它被Asp.net页面框架用来在呈现到页面之前自动保存页面和每个控件的值。页面发布时,页面处理执行的第一个任务之一是恢复视图状态。

b。控制状态 - 如果您创建要求视图状态正常工作的自定义控件,则应该使用控件状态以确保其他开发人员不会因禁用视图状态而中断您的控制。

c。隐藏字段 - 与查看状态类似,隐藏字段将数据存储在HTML表单中,而不在用户的浏览器中显示。该数据仅在处理表单时可用。 d)。 Cookies - Cookie在用户的浏览器中存储一个值,浏览器将每个页面请求发送到同一台服务器。 Cookie是存储网站上多个Web页面必须可用的状态数据的最佳方式。

e。查询字符串 - 查询字符串存储URL中用户可见的值。当您希望用户能够通过URL发送电子邮件或即时消息状态数据时使用查询字符串。

  1. 服务器 - 端状态管理

一个。应用程序状态 - 应用程序状态信息可用于所有页面,而不管哪个用户请求页面。

b。会话状态 - 会话状态信息可供用户在单次访问期间打开的所有页面使用。

当应用程序重新启动时,应用程序状态和会话状态信息都会丢失。要在应用程序重新启动之间保留用户数据,可以使用配置文件属性来存储它。

优势客户的

优势 - 端状态管理:

  1. 更好的扩展性:随着服务器端的状态管理,每一个连接到Web服务器在Web服务器上消耗内存的客户端。如果一个Web站点拥有数百或数千个并发用户,则存储状态管理信息所消耗的内存可能成为一个限制因素。将这种负担推给客户可以消除潜在的瓶颈。

  2. 支持多个Web服务器:使用客户端状态管理,您可以将传入请求分布到多个Web服务器上,而无需更改您的应用程序,因为客户端提供了Web服务器处理请求所需的全部信息。通过服务器端状态管理,如果客户端在会话中间切换服务器,则新服务器不一定有权访问客户端的状态信息。您可以将多个服务器与服务器端状态管理一起使用,但您需要智能负载平衡(始终将客户端请求转发到同一台服务器)或集中式状态管理(状态存储在中央数据库中,所有Web服务器访问)。服务器的

优势 - 端状态管理:

  1. 更好的安全性:客户端状态管理信息可以被捕获(无论是在运输途中或在它被存储在客户端上),或恶意修改。因此,您绝不应使用客户端状态管理来存储机密信息,例如密码,授权级别或身份验证状态。

  2. 降低带宽:如果存储大量状态管理信息,将信息来回发送到客户端可能会增加带宽利用率和页面加载时间,从而可能增加成本并降低可伸缩性。增加的带宽使用率对移动客户端的影响最大,因为它们通常连接速度非常慢。相反,你应该在服务器上存储大量的状态管理数据(比如超过1 KB)