表格搞定 Asp.net Web 状态管理
最近在网上搜罗了 ASP.NET WEB 状态管理方面的一些内容,终于把这些内容整合总结了一下。
1. 希望自己通过整理,能够掌握一些,为自己投资。
2. 以便自己忘记,又要浪费时间搜罗。
3. 希望对园友有帮助,这是一件很开心的事情
4. 希望大侠们看到问题及时帮忙指正,不想误导自己,更不想误导园友,在下不胜感激
不再磨叽,马上上菜
名称 |
用户 |
生存时间 |
数据 |
位置 |
优势 |
劣势 |
建议 |
Application |
所有用户 |
应用程序重新启动 |
没有限制,只被存储一次 |
服务器,可以存储在数据库 |
1. 实现简单 2. 整个应用程序作用域(公用) |
1. 整个应用程序作用域的范围导致没有与私人空间 2. 服务器挂掉、升级以及关闭可能会导致数据丢失或被破坏 3. 需要占用服务器内存 |
存储多用户使用但不经常改变且不考虑安全性的全局信息 |
Cookie |
当前用户 |
一般很短,但是只要用户不删除,可以是数月甚至数年 |
少量且经常改变的数据 |
客户端 |
1. 存储时间可配置 2. 无需服务器资源 3. 简单 4. 数据持久化 |
1. 数据大小受限 2. 用户可禁用 3. 潜在安全隐患 |
需要在客户端且不需要考虑安全性的少量数据 |
QueryString |
一个或一组用户 |
为下一个请求 (可以跨多个请求重复使用) |
很小,简单数据 |
客户端 |
1. 无需服务器资源 2. 被广泛支持 3. 实现简单 |
1. 潜在安全隐患 2. 能力有限(被URL长度限制) |
通过链接,从一个面发送到另一个页面或者是相同页面,且不需要考虑安全性的少量数据 |
Session |
当前用户 |
只要用户是在线的,以及在超时时间内(一般是20分钟),支持自失效 |
没有限制,但是应尽量小,因为每个用户都有自己单独session的存储 |
服务器 |
1. 实现简单 2. 可以使用会话管理事件 3. 数据持久化 4. 可在多计算机、多个进程之间使用 5. 弥补Cookie受限 6. 可以自定义和扩展Session |
1. 性能问题 |
需要考虑安全性,存储特定的单独会话的短期信息 |
Cache |
所有用户或者用户子集 |
根据实际需要可长可短 |
可很大、也可以很小、也可以很复杂 |
客户端/服务器 |
1. 有ASP.NET管理 2. 当内存不足或者超时,将自动清除 3. 可配置 4. 减轻Web Service或者数据库的负担 5. 提高性能 6. 可靠性 |
1. 同步不及时 2. 扩展性问题 3. 维护成本 |
用户经常访问但不经常更新的数据 |
View State |
当前用户 |
一个页面 |
少量信息,随着页面的回发,数据将会在页面来回发 |
客户端,以隐藏域的形式存储 |
1. 无需服务器资源 2. 实现简单 3. 增强全性 |
1. 性能问题 2. 设备限制 3. 潜在安全隐患 |
存储少量需要回发给自己的页面信息 |
Control state |
当前用户 |
一个页面 |
少量信息,往返于服务器之间的控制使用的状态信息 |
客户端,默认以隐藏域的形式存储 |
1. 无需服务器资源 2. 可靠 3. 通用 |
1. 特定程序依赖性 |
需要存储少量信息往返于服务器之间的控制使用的状态信息 |
Hidden Fields |
当前用户 |
一个页面 |
少量且经常被改变的数据 |
客户端 |
1. 无需服务器资源 2. 被广泛支持 3. 实现简单 |
1. 潜在安全隐患 2. 存储数据简单 3. 性能问题 4. 存储限制 |
需要发送到另一个页面或者回发,且无需考虑安全性的少量页面信息 |
Profile Properties |
当前用户 |
配置文件更新 |
任何类型的数据 |
服务器 |
1. 数据持久化 2. 可在多计算机、多个进程之间使用 3. 可扩展性 |
1. 性能问题 2. 额外的配置要求 3. 维护数据 |
用户session过期后需要持久化的信息,用户下次访问时需要恢复的信息 |
Database |
当前用户 |
只要不被删除 |
任何类型的数据 |
服务器 |
1. 安全性 2. 数据存储量大 3. 数据持久化 4. 稳定性和数据完整性 5. 可访问性 6. 被广泛支持 |
1. 复杂性 2. 性能问题 |
存储大量的信息,使用管理事务,或者整个应用程序生命周期都需要使用的信息,再次访问时需要使用的信息。考虑数据挖掘,考虑安全性。 |
再次希望,如果有问题能及时帮忙指正,有问题请留言,有帮助就支持一下吧!
表格搞定 Asp.net Web 状态管理的更多相关文章
- ASP.NET Web – 状态管理
状态类型 客户端或服务器资源 有效时间 ViewState 客户端 只在一个页面中 Cookie 客户端 关闭浏览器时会删除临时cookie,永久cookie存储在客户系统的磁盘上 Session 服 ...
- asp.net 的状态管理
状态管理 (state management) 在Web应用程序中,一向是很重要的课题,良好的状态管理可以帮助开发人员发展出具有状态持续能力的应用程序(像是工作流程型应用程序或是电子商务应用程序),但 ...
- web状态管理机制
引入:b/s(浏览器/服务器模式)区别于winform的是winform中只加载一次页面构造函数,而b/s中只要点击按钮或者其他涉及后台的操作都会调用后台代码.一般情况下为了防止服务器过载,b/s不会 ...
- 几个步骤轻松搞定ASP.NET 依赖注入。
http://www.it165.net/pro/html/201407/17685.html 我在网上看到了这篇文章,这边文章主要说的方法就是通过读取配置文件来解决依赖注入的问题.但是每次新建一个依 ...
- 三方面搞定http协议之“状态码”
当我们向服务器请求数据的时候,服务器会给我们一个反馈,告诉我们对待我们的请求,服务器处理得怎么样了,而这个反馈,是通过数字来传达的,这个数字就叫状态码. 状态码分为以下几种: 1xx:指示信息--表示 ...
- 一个文件搞定Asp.net core 3.1动态页面转静态页面
最近一个Asp.net core项目需要静态化页面,百度查找了一下,没有发现合适的.原因如下 配置麻烦. 类库引用了第三方类,修改起来麻烦. 有只支持MVC,不支持PageModel. 继承Actio ...
- [译]面向初学者的Asp.Net状态管理技术
介绍 本文主要讲解Asp.Net应用程序中的状态管理技术(Asp.Net中有多种状态管理技术),并批判性地分析所有状态管理技术的优缺点. 背景 HTTP是无状态的协议.客户端发起一个请求,服务器响应完 ...
- 让ASP.NET Web API支持text/plain内容协商
ASP.NET Web API的内容协商(Content Negotiation)机制的理想情况是这样的:客户端在请求头的Accept字段中指定什么样的MIME类型,Web API服务端就返回对应的M ...
- [Asp.Net]状态管理(ViewState、Cookie)
简介 HTTP协议是无状态的.从客户端到服务器的连接可以在每个请求之后关闭.但是一般需要把一些客户端信息从一个页面传送给另一个页面. 无状态的根本原因是:浏览器和服务器使用Socket通信,服务器将请 ...
随机推荐
- Mac下golang开发环境配置
go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发. 下面介绍在Mac OS X中golang的开发环境配置. 1.安装brew brew是一个mac下的由ruby开发 ...
- MongoVUE1.6.9破解启动提示System.ArgumentException: 字体“Courier New”不支持样式“Regular”
用MongoVUE,发现报错,报错信息如下: System.ArgumentException: 字体"Courier New"不支持样式"Regular". ...
- Pascal 语言中的关键字及保留字
absolute //指令(变量) abstract //指令(方法) and //运算符(布尔) array //类型 as //运算符(RTTI) asm //语句 assembler //向后兼 ...
- js 怎么屏蔽微信打开网页后的分享
我们知道 js 可以通过 window.navigator.userAgent 来获取浏览器的相关信息,比如:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537. ...
- Python2 新手 编码问题 吐血总结
什么是编码 任何一种语言.文字.符号等等,计算都是将其以一种类似字典的形式存起来的,比如最早的计算机系统将英文文字转为数字存储(ASCII码),这种文字与数字(或其他)一一对应的关系我们称之为编码.由 ...
- 从零开始山寨Caffe·拾:IO系统(三)
数据变形 IO(二)中,我们已经将原始数据缓冲至Datum,Datum又存入了生产者缓冲区,不过,这离消费,还早得很呢. 在消费(使用)之前,最重要的一步,就是数据变形. ImageNet Image ...
- CS0103: The name ‘Scripts’ does not exist in the current context解决方法
转至:http://blchen.com/cs0103-the-name-scripts-does-not-exist-in-the-current-context-solution/ 更新:这个bu ...
- Linux下不同机器之间拷贝文件
在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...
- iOS中push视图的时候,屏幕中间会出现一条灰色的粗线的解决方案
因为执行动画需要时间,所以在动画未完成又执行另一个切换动画,容易产生异常.所以在一个方法连续push不同的VC是没有问题的,但是不小心push同一个VC,并且animated为YES,可能多次跳转了 ...
- [原创]MySQL innodb_rollback_on_timeout参数对锁的影响
环境:Server version: 5.6.21-log MySQL Community Server (GPL) 前提提要: innodb_rollback_on_timeout是 ...