




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 应用程序状态状态管理 本章内容 视图状态查询字符串自定义Cookie会话状态应用程序状态配置文件缓存 为什么需要状态管理 无论Web应用程序框架多么先进 他都不能改变这样一个事实 HTTP是一种无状态协议 每次Web请求后 客户端和服务器端都要断开 同时ASP NET引擎将释放页面对象 这种架构保证了Web应用程序能够同时响应数千个并发访问而不会导致服务器内存崩溃 其负面效应是我们必须通过其他技术存储Web请求之间的信息并要在需要的时候获取它们 视图状态VS查询字符串VS自定义Cookie 会话状态VS应用程序状态 配置文件VS缓存 视图状态 视图状态是在单个页面中保存信息的第一选择通过在页面中内建的叫做ViewState的属性 可以将自己的数据放入到视图状态集合中 可以保存的信息类型包括简单类型数据和自定义对象视图状态依赖于字典集合 集合中的每个项目通过一个唯一的字符串名字进行索引 代码参考 ViewState Goods Id 13 intgoods Id int ViewState Goods Id 查询字符串 查询字符串是URL中第一个问号后面的部分查询字符串的优势在于它是轻量级的 并且它不会加重服务器的负担 使用方式参考 URL http showGoods aspx id 3217代码 stringgoodsId Request QueryString id 另外需要注意 URL中尽量不要使用特殊字符和汉字 如需使用要先进行URL编码 Response Redirect searchGoods aspx keyword Server UrlEncode IPhone手机 Cookie Cookie一般是在用户硬盘上创建的小文件 临时Cookie保存在浏览器的内存中 使用Cookie前 需要引入命名空间System NetCookie的使用方法 利用Response对象写入Cookie 语法参考 HttpCookiecookie newHttpCookie Goods cookie Id 3217 cookie Count 12 cookie Expires DateTime Now AddDays 3 Response Cookies Add cookie 利用Request对象读取CookieHttpCookiecookie Request Cookies Goods stringgoodsId cookie Id 会话状态 可以通过System Web SessionState HttpSessionState类和会话状态交互 它建立在Session对象中 由ASP NET网页提供 使用语法 Session GoodsList lstGoods ListlstGoods List Session GiidsList 注意 如果利用Session来实现用户登录控制 那么退出功能可以通过调用Session Abandon 方法来结束会话 应用程序状态 应用程序状态允许保存被所有客户访问的全局对象 应用程序状态基于System Web HttpApplicationState类 该类在所有Web页面中通过内建的Application对象提供 使用应用程序状态的语法参考Session对象 另外注意Application对象的两个常用方法 Application Lock Application Unlock 一般而言 经常改变的值不适合放到应用程序状态中 事实上 NET中极少使用应用程序状态 因为它们两个最常用的两个功能已经被更简单 更有效的方法代替了 程序级别的常量 如数据库连接字符串 经常存储于Web Config文件用于保存常用但创建比较费时的信息 比如所有产品分类 使用应用程序状态易出问题 所以更多时候采用的都是缓存功能 数据缓存 数据缓存是最灵活的一种缓存 其基本原则是把创建代价高的信息加入到一个内置集合对象内 Cache 这个对象的工作方式在很大程度上与Application相类似 它对应用程序的所有请求都有效 但它们之间还是有区别的 Cache对象是线程安全的Cache对象是自动移除的缓存内的项目支持依赖性数据缓存使用的语法参考 添加缓存项Cache key item 不推荐使用该语法Cache Insert key item Cache Insert key item dependencies 使用默认的优先级 最后一个参数用于制定依赖项Cache Insert key value dependencies absoluteExpiration slidingExpiration 使用默认的优先级 并指定可调或绝对过期策略 不可同时使用 移除缓存项Cache Remove item Key ToString 数据缓存 缓存的优先级 可以从CachePriority每句类型选择一个值 High AboveNormal Normal BelowNormal Low NotRemoveable 缓存依赖项依赖于文件和缓存项目CacheDependecydep newCacheDenpendecy Server MapPath ProductList Xml Cache Insert ProductInfo productInfo dep 依赖于数据库查询 SQL2005 轮询模型服务代理 SQL缓存依赖 服务代理 启用通知USEdbNameALTERDATABASEdbNameSETENABLE BROKER为网站项目添加 全局应用程序类 Global asax 并使用如下代码初始化监听服务 voidApplication Start objectsender EventArgse 在应用程序启动时运行的代码System Data SqlClient SqlDependency Start ConfigurationManager ConnectionStrings mySqlConn ToString 创建缓存依赖SqlConnectioncon stringsql SELECTId NameFromCategorys SqlCommandcmd SqlDataAdapteradapter SqlCacheDependecydep newSqlCacheDependecy cmd DataSetds Adapter Fill ds Categorys Cache Insert CateGorys ds dep SQL缓存依赖 轮询模型 启用通知 为数据库启用通知 aspnet regsql ed E dDBName为数据库表创建通知触发器 aspnet regsql et E dDBName tTableName在Web Config配置轮询服务 创建缓存依赖DataTabledt newDataTable SqlCacheDependencyscd newSqlCacheDependency CacheDB Categorys Cache Insert Categorys dt scd GridView1 DataSource dt GridView1 DataBind 配置文件 用户配置属性 配置属性 使用用户配置属性 Profile Id 2317 stringname Profile Name 配置文件 用户配置组 配置属性 使用用户配置属性 Profile Goods Id 2317 stringgoodsName Profile Goods Name 配置文件 用户配置和自定义数据类型 数据类型定义 Serializable publicclassGoods privateint id privatestring name publicintId get set publicstringName get set publicGoods intid stringname Id id Name name 配置属性 使用用户配置属性 Profile Goods newGoods 2317 IPhone手机 使用配置文件管理器 ASP NET提供了一个ProfileManager类 用于管理用户配置 常用方法如下 DeleteInactiveProfiles 用于删除从某一日期之后不再使用的用户配置DeleteProfile 用于删除指定用户名关联的用户配置DeleteProfiles 用于删除和一个用户名数组或ProfileInfo对象数组中的用户对象关联的用户配置FindInactiveProfilesByUserName 用于获取指定用户名关联的并且从某一日期后不再活动的所有用户配置FindProfilesByUserName 用于获取指定用户名关联的所有用户配
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品技术合作开发合同书
- 冷链物流速冻加工项目规划设计方案(范文模板)
- 数学建模与应用建模实践练习题集
- 乡村健康食品生产与供应链优化
- 那个让我难忘的陌生人写人作文(10篇)
- 农民互助性农业生产管理合同
- 电力电子技术应用实践题
- 增强平台竞争力与市场领导力的路径
- 市场营销消费者行为知识考点详解
- 历史文物保护与现代科技融合应用知识要点题
- 仪器仪表制造职业技能竞赛理论题库
- 网络服务器配置与管理(微课版) 教案 项目02 虚拟化技术和VMware-2
- 税收分析试题及答案
- 2025年西式面点师(中级)面包烘焙实操考试试卷
- 回迁楼房买卖合同协议书
- 新课程理念下语文课堂教学体系重建
- 从技术革新到应用拓展:高效便捷三维人体重建的多维探索
- 2025年湖南省中考数学模拟试卷(二)
- 国家开放大学2025年《创业基础》形考任务3答案
- 广东省大湾区2025届普通高中毕业年级联合模拟考试(二)化学(含答案)
- 电大《组织行为学》期末题库及答案
评论
0/150
提交评论