当前位置: 首页 > news >正文

hexo 转 wordpress/宝鸡seo培训

hexo 转 wordpress,宝鸡seo培训,做商品推广有那些网站,做胃镜需那好天津津门网站A状态保存机制之ViewState概述及应用 作者: 字体:[增加 减小] 类型:转载无状态的根本原因是:浏览器和服务器使用Socket通信,服务器将请求结果返回给浏览器后,会关闭当前Socket连接,接下来介绍状态保存机制&a…

状态保存机制之ViewState概述及应用

作者: 字体:[增加 减小] 类型:转载
无状态的根本原因是:浏览器和服务器使用Socket通信,服务器将请求结果返回给浏览器后,会关闭当前Socket连接,接下来介绍状态保存机制,感兴趣的朋友可以了解下

无状态Http

无状态的根本原因是:浏览器和服务器使用Socket通信,服务器将请求结果返回给浏览器后,会关闭当前Socket连接。而且服务器会在处理页面完毕后销毁页面对象。

应用层面的原因是:浏览器和服务器之间通信都遵守HTTP协议。

一个浏览者发出的请求都是由实现了IHttpHandler接口的对象进行响应,由于下次访问不一定还是上次那个对象进行响应,上次响应完毕对象可能已经被销毁了,写的类变量值早就不存在了,因此不能将状态信息保存到类变量中。

编写一个ashx

复制代码代码如下:

private int i; 

public void ProcessRequest(HttpContext context) 



context.Response.ContentType = "text/plain"; 

context.Response.Write(i++); 





多次刷新我们发现,变量根本不会记忆上次的值。

 

对网站造成的影响:如果用户录入了一些信息,当跳转到下一个页面时,数据丢失,再也不能获得那些数据。

如果要知道上一次的状态信息,我们就得把这个状态信息记录在某个地方:

  a.服务器端Session

  b.浏览器端Cookie

  c. 表单元素中—如:隐藏域<input type=“hidden”/>(Http报文)ViewState

四个重要的

ViewState:

ASP.NET 的 .aspx页面特有,页面级的;

就是在页面上的一个隐藏域中保存客户端单独使用的数据的一种方式;

服务器端控件的值都自动保存在ViewState中;

Cookie:

HTTP协议下的一种方式,通过该方式,服务器或脚本能够在客户机上维护状态信息;

就是在客户端保存客户端单独使用的数据的一种方式;

就像你的病历本一样,医院直接给你带回家;

Session:和.Net提供的辅助进程相关。 

在服务器端保存客户端单独使用的数据的一种方式;

就像银行账户,钱都存在银行里,你就拿一张银行卡【所谓的SessionId】回家(写入客户端的Cookie中);

Application:

在服务器端保存共享数据的一种方式;

就像银行的单人公共卫生间,谁进去都行,但一次去一个,进去了就锁上门,出来再把锁打开;

ViewState(页面级)

使用方式: 作用域---页面级

保存数据方式:

复制代码代码如下:

ViewState["myKey"]="MyData"; 

读取数据方式:
复制代码代码如下:

String myData; 

if(ViewState["myKey"]!=null) 



myData=(string)ViewState["myKey"]; 


ViewState不能存储所有的数据类型,仅支持:
String、Integer、Boolean、Array、ArrayList、Hashtable

 

使用ViewState的前提
页面上必须有一个服务器端窗体标记(<form runat=“server”>)

服务器在接收到用户请求一个页面后,会自动在请求报文中找看是否包含__VIEWSTATE的隐藏域,如果有,则将中间的值解码后添加到页面的ViewState属性中。

服务器在输出的时候,也会自动的将ViewState中的值添加到表单里名叫__VIEWSTATE的隐藏域中。

VIEWSTATE适用于同一个页面在不关闭的情况下多次与服务器交互

跨页面提交的__VIEWSTATE不会被目标页面装入页面的ViewState属性中

添加runat=server生成html页面源码如下

未添加如下:

__VIEWSTATE隐藏域生成的原理

复制代码代码如下:

//在页面类对象 执行PR方法的时候 先创建了控件树 然后通过执行 loadState方法 将请求报文中的名字为__VIEWSTATE的值 然后反base64编码 进行反序列化 最终还原成为集合 之后将其中属于程序员自己添加到ViewStatue里的键值对【ViewState会自动添加页面中runat=server控件的属性与状态】还原到页面对象的ViewState属性中 最后才执行Page_Load 原理 见图 
protected void Page_Load(object sender, EventArgs e){ 
//页面的ViewState属性实际上就是获取了浏览器提交过来的一个名为__VIEWSTATE的隐藏域里的值 
if (ViewState["name" ] != null){ 
string strName = ViewState["name" ].ToString(); 
Response.Write( "ViewState['name']" +strName); 
} else { 
//向 ViewState中添加一个键值对 
//ViewState.Add("name", "痞子一毛"); 同以下方式 
ViewState[ "name" ] = "痞子一毛" ; //实质就是向隐藏域中添加键值对 如果不被提交到服务器 那么ViewState["name"]永远为null 
ViewState[ "name2" ] = "痞子三毛" ; 

}

以上代码原理图解:

 

补充:

禁用ViewState的方法,禁用单个控件的ViewState设定enableviewstate=false。禁用整个页面的,在aspx的Page指令区加上EnableViewState="false" 。内网系统、互联网的后台可以尽情的用ViewState。但互联网前台就不要使用了【注:禁用也只是不保存服务端控件属性和值但隐藏域还是存在的】

WebForm的IsPostBack内部实现  就是对页面或者get传参中是否含有__ViewState这一参数名称进行判断返回bool值

证实:

复制代码代码如下:

protected void Page_Load(object sender, EventArgs e){ 
if (IsPostBack) //回传 
Response.Write( "只要浏览器提交的请求报文里包含__VIEWSTATE这个键" );//在该页面地址 http://localhost:7148/ViewSatate.aspx 末尾添加 ?__VIEWSTATE 会输出此段代码 
else 
Response.Write( "ASP.NET就会将页面的IsPostBack属性设置为true" );

转载于:https://www.cnblogs.com/mingyongcheng/p/3923141.html

http://www.lbrq.cn/news/1259245.html

相关文章:

  • 建设企业网站初始必备的六大功能/搜索引擎seo关键词优化
  • 网站做宣传域名什么好/网络整合营销是什么意思
  • 龙岩市新罗区疫情最新消息/徐州seo顾问
  • 做网站开发的经营范围/怎么搞自己的网站
  • 怎样给网站做后台/南宁百度seo排名优化
  • 专业做网站的团队推荐/长春网络优化最好的公司
  • 龙岗网站建设费用/广告联盟广告点击一次多少钱
  • 建设企业网站哪个好/查询网
  • wordpress 删除所有评论/营销型网站seo
  • DW做注册网站/seo入门书籍推荐
  • 快速建站平台源码/全自动引流推广软件免费
  • 定西营销型网站建设/广州广告公司
  • 网站后台配置/百度竞价推广自己可以做吗
  • 公司网站开发/西安seo霸屏
  • ui做网站实例/sem优化
  • 网站的压力测试怎么做/seo优化软件有哪些
  • 高唐企业网站建设/还有哪些平台能免费营销产品
  • 医院网站建设好处/百度号码认证
  • 用视频做网站背景/百度广告怎么投放
  • 上海近期新闻事件/qq群排名优化软件官网
  • 模板网站和定制网站影响排名/淘宝热搜关键词排行榜
  • 国外炫酷网站/什么是指数基金
  • wordpress 数据库字段/seo综合查询 站长工具
  • 服务器上的php4.0网站连接sql2005服务器连接不上/google优化推广
  • 网站建设wordpress比较/精准推广引流5000客源
  • 大学生做家教网站/帮人推广的平台
  • 代做网站公司/此网站不支持下载视频怎么办
  • 沈阳什么行业做网站的最多/百度小说搜索热度排行榜
  • 做起点说网站的服务器多少钱/抖音seo搜索引擎优化
  • 商城系统网站模板/域名解析ip地址
  • C++入门自学Day5-- C/C++内存管理(续)
  • 2106. 摘水果
  • Jupyter Notebook 中高效处理和实时展示来自 OpenCV 和 Pillow 的图像数据探究
  • GitLab 代码管理平台部署及使用
  • 安灯系统(Andon System)
  • sifu mod制作 相关经验