没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2009-05-04 09:59:53.000|阅读 332 次
概述:这些状态的原理对于做.NET开发非常重要。现在详细解说一下。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
这些状态的原理对于做.NET开发非常重要。现在详细解说一下。
视图状态:视图状态就在大家身边不知道大家是否注意。ASP.NET是基于服务其处理事件的。当服务器处理完事 件时,再返回本窗体时,如果没有视图状态,原来的数据将不会在有。这样说也许会晕。举个列子,比如有一个网站需要你注册成为会员。当你填完信息,(一般来 说页面会转向别的地方)这里为了说明问题,我们让他返回原来的页面继续操作,如果没有视图状态,则你以前填的数据都没有了。如果有视图状态,则原来的数据 还在。试图状态在一些时候很有用。比如说分级验证时。
那么.NET是用什么方法保持试图状态呢?这里微软采用了一种特殊的方法。在浏览器打开网页的源代码,你会发现一段你在编辑网页时,没有添加的一个HTML控件。
形式是这样的:
<input type="hidden" name="_VIEWSTATE" id="_VIEWSTATE" value="一些加密过的值"/> |
这是.NET自动给你添加的。它也是视图状态能够实现的功臣。因为这个空间是隐藏的,所以不会破坏页面的布局。空件中的value中的值就是就是各 个空件以及控件中的数据(状态)。这些数据是经过哈希函数加密过的。这是为了安全考虑。当网页提交时,浏览器首先将当前网页中的各种状态(包括控件以及控 件中的数据)保存到这个HTML字段中。当网页再次返回浏览器时,在自动把这些状态返回给网页,这样网页也就恢复了状态。
再来讲讲视图状态需要注意的问题。
视图状态只能在本网页与服务器之间保持,不能在不同网页之间连接时保持。默认情况下,几乎所有的ASP.NET控件都有保持视图状态的功能。
视图状态有很多优点,但同样(世上每件事都具有两面性,一个好的技术也不列外)有些缺点。首先是安全,虽然数据是经过加密,但对于黑客中的骨灰级人物,还是很不安全的。再次,你可以想如果你的页面包括几百条记录,页面很复杂,这是必会影响网页的加载速度。
应用程序状态(Application):Application对象是应用程序的全局性对象。用于存放应用程 序的全局共享资源。他的本质是HttpApplicationState类的一个实例。当用户第一次反问某虚目录中的资源时,就被创建。也就是说网站第一 次在互联网上发布,这时有一个用户刚好访问你的虚拟目录资源,那么Application对象就已经建立。在资源与应用程序之间建立了一个缓冲区。
应用程序状态只有在网站运行时存在。当应用程序推出或服务器关闭时(更惨一点服务器崩溃了),应用程序状态中保存的数据机会丢失和损坏。所以对于需要永久保留的资源还是在数据库中持久化保存的好。
介绍一些Application对象的一些操作方法。
Application对象当然是采用最经典的“键-值”对的字典方法来定义。其中键为字符串代表Application对象的名称。值可以是任何类型的数据。(例如HTML,CSS,SQL都可以)。举个例子:
Application["source"]="special source"; |
会话状态(Session):Session对象用来保存单个用户的状态。在网站中,每个新访问的用户都将产生 自己的会话(Session)对象。这个Session对象是在服务器端进行管理,只能为它所绑定的用户服务。如果另一位用户也访问网站,他也经拥有自己 的Sesiion对象。两个用户的Session对象即使同名,也不能共享同一个Session对象。各是各的。
实际上Session对象是HttpSessionState类的实例。有很多属性和方法,大家不妨去看看。这里不阐述了。
就一些例子吧。
Session["source"]="special source"; |
应用程序状态在网站中总是可用的,这.NET Framework的内部机制,我们不去管。我们来看看Session对象。由于在Machine.config配置文件中的Session设置是启动 的,因此不需要额外的步骤就能使用它。尽管如此我们还是要知道一些原理和本质。Machine.config和应用程序的Web.config中的设置决 定了是启动还是关闭Session对象。当然如果想要延迟到需要时,在启用也可以。我们可以在页面一级设置。
<%@ Page Language="C#" EnableSessinState="False"%>//这条语句的作用是在这个页面中不能使用会话状态(Session)。 |
Session对象有一个Timeout属性可以设置Session对象的生命周期。它以分钟为单位,默认是20分钟。如果再有效时间内没有连接服务器,那么Session的所有设置都将失效。如果需要终止Session对象,可以用它的Abandon()方法。
差点忘了,Session有一点很重要,补充一下。
session中的关键字是不区分大小写的。因此不要用大小写来区分Session变量。也就是说Session["source"]与Session["SOURCE"]是一样的。如果删掉其中一个,会有意想不到的结果。
Cookie状态: Coolkie 状态一是用来保存一个用户资源的状态。和Session不同的是它存储在浏览器端。在Cookie中只能含有较少的信息,通常不超过4096个字节(有些 较新的浏览器可以达到8192个i字节).在ASP.NET中,Session对象和Cookie对象现结合来识别用户。每当用户开始连接站点时,系统将 自动在内存块中创建一个和用户有关的Session对象,同时创建一个Cookie对象来保存用户ID并把它保存在浏览器端,与当前的用户唯一的联系起 来。这样当用户下一次在访问时,用户被要求提交用户的TD也就是CooKie,Cookie和Session相对照以正确的还原原来的会话状态。这就是无 状态协议Http条件下保持用户状态的方法。
向浏览器写入Cookie的方法是这样的。举个例子:
HttpCookie cookie=new HttpCookie("userNameId");//创建一个Cookie对象,并且赋值。 |
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:自互联网面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号