惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - alittlefish

[摘]预防不良公司低价陷阱 如何查看装修预算书 TEST FOR DEMENTIA YoYo speeking :) 从此,我多了一件小棉袄 [转]100元人民币的最新发现 - alittlefish - 博客园 月子里的营养食谱 在上海怎样领取生育保险 ICSE2006 DG上海2日行之Tacobell 帮一个国外的朋友找兼职 结婚两年了,才拿到婚纱照 帮朋友贴个招聘信息。 老婆怀孕快3个月了,帖点“准爸爸”的注意事项备用 若干年前和朋友开的一个公司的名字,至今还是那么怀念当时的热情 你是哪个级别的穷人? 我和沙龙同一天生日 年前简单封装了两个图形报表控件,做了个demo放上来。 Page对象的执行过程
由重写ViewState存储目的而想到的
alittlefish · 2006-02-27 · via 博客园 - alittlefish

下午看到木野狐的一篇名为《ASP.NET 小技巧:重写 ViewState 的存储目的地,以提高页面性能》的文章,记得以前看到过关于压缩ViewState保存以达到提高页面访问速度的文章,不管怎么样,这些都是些优秀的内容。但是看到后面跟的一堆评论,我不免产生一个疑问:到底ViewState的使用范围有多大?为什么经常会看到说ViewState会保存大量数据内容?

一个是改变ViewState的存储位置,一个是压缩ViewState,怎么看都觉得好象ViewState让人感觉是引起“性能损失,访问变慢”的罪魁祸首。可是事实上,ViewState是这样的吗?

由于HTTP是无状态协议,因此在基于B/S结构的应用中,状态管理一直是有一定讨论内容的话题。有时候面试ASP.NET程序员,都会把列举ASP.NET状态管理的方法做为一个题。而也正因为有了多种不同的状态管理的方法,所以也间接导致了部分情况下ViewState成了让人不舒服的东西,所以才会有人去改变存储位置,去压缩。

ViewState是ASP.NET特有的一个内容,而Session、Cache、Cookies、Application这些在其他一些WEB开发方式中也并不陌生。但是不管怎样,这些都是ASP.NET中保存状态信息的一些方法。但是严格说,ViewState与其他几种方式最大的差别就是它的生命周期。

ViewState其实最初设计的目的是提供给组件开发人员使用的,但是由于Page对象也存在一个StateBag对象的ViewState,所以往往更多的人把ViewState看作为保存页面临时状态的方法。但是不管怎么样,熟悉ViewState工作模式的人就会知道,它开始于PostBack以后Page对象的LoadViewState(Page的Child Controls随即也逐个调用LoadViewState),结束于Page对象的SaveViewState,其他时候,它就是一串晦涩的字符串。所以,严格说ViewState的生命周期就是Request-Response。

记得有本技术书籍提到过木野狐的更改ViewState的保存位置的方式加快访问速度,但是那里说的是保存到一个数据库中,这种方式我一直表示怀疑。现在旧事重提,我不得不发表些个人观点。其实我一直认为,ViewState保存大数据除非是不得已,否则还是不建议那么做,我以前写的一个层级下拉框的代码就因为用ViewState保存DataSource被我枪毙,所以到现在也没有扶正,虽然demo仍然放在网上,不少人还问我要代码。但是我自己一直没有用它。