当前位置:首页 > java知识学习_java技术文章 > 正文

html enableviewstate 使用属性功能有什么作用及无效原因

浏览786+

一、html viewstate属性介绍

viewstate是在asp.net语言中引入的一种数据存储和数据回发机制,当页面儿进行了跳转或者是刷新的时候用该属性来保存服务器端回发的值。

该viewstate属性相当于一个存储域用来存储页面中临时修改的值,当页面中进行回发或者是刷新修改了值以后,这个值不用直接存在配置文件中,也不用存在相应的会话状态中,而是存在了viewstate中。这样当页面儿重新进行提交或修改的时候viewstate值就会发送到服务器和数据库中修改。

二、enableviewstate属性功能及作用

这个属性就是控制viewstate是否启用的一个属性,默认值是true,在一定的情况下也会使用false进行禁用。

那么该属性到底有什么作用呢?众所周知http请求的web页面儿都是无状态的短链接请求,每次向服务器发送一个请求都会创建一次连接,并且这种连接不会携带信息,这就意味着发送完一次请求之后再发送另一个请求,这两次请求之间会丢失相应的控件信息,因此呢enableviewstate这个属性就是为了控制是否携带往返请求过程中的信息。

另一个属性功能作用就是当我们再做一次由服务端请求的页面刷新时,enableviewstate如果为true的话,页面刷新后,页面上的信息还会保存,如果设置为false了,你刷新页面后页面上的信息就不存在了,因此viewstate的属性功能作用就是存储服务器端回发时的相关信息存储

扩展阅读:

page enableviewstate 禁用与使用心得     Page.EnableViewState 属性     checkbox ViewState

三、属性使用案例代码

enableviewstate=”true”的代码使用案例

viewstate启用时的代码详情

上图是贴出来的一段HTML代码,在该代码中写了一个控件儿名叫DropDownLis,并且给旁边的button按钮添加了一个click点击事件。

在文本框代码中,我们设置了enableviewstate=”true”这个属性,当触发了button按钮的点击事件修改了文本框中的值之后刷新一下页面,查看一下该值是否还存在。

当设置了属性为true后,改变了文本框的值之后,刷新页面儿发现文本框的值是我们改变之后的值,而不是之前的第一个值,这一点也充分说明了viewstate能够存储回发数据的功能。

enableviewstate=”false”的代码使用案例

下面我们再看一下该属性禁用设置为false时大家再看看文本框的值的改变情况。

viewstate禁用的详细代码使用案例

上图中的代码跟我们第一个图儿中的代码是一样的,只不过它第二个文本框enableviewstate设置为了false,当我们点击第二个按钮,触发点击事件修改文本框的值然后刷新页面儿。

此时发现文本框的值是第一个初始值,而不是修改后的值,因为我们禁用了enableviewstate,因此它没有存储回发的数据。

四、该属性无效的原因分析

最近有小伙伴反映设置了enableviewstate=false属性后没有效果,在页面中还是会显示各个控件中启用了该属性,很是令人苦恼。

此种情况下是什么原因所致呢?那就要聊一下该属性都可以在什么地方可以设置?不同的地方设置是有一定的优先级的,并且该属性的默认值都是true,你不设置的话它默认都开启,因此你在单个控件上设置为false有时候会无效,下面这张图很清晰地展示出了enableviewstate都可以在哪些控件、页面儿或者是配置文件中使用的情况。

viewstate可以出现的地方详情汇总

根据上图中该属性可以出现的各个情况,我们可以分别在这上图中展示的这几个地方都设置一下该属性,那么就不会出现无效的情况了。

我们也可以根据我们下图中展示的优先级规则,按照下面的优先级来设置该属性,优先设置优先级高的地方即可。

eviewstate属性优先级说明详情

以上就是本文该属性无效的原因分析,大家也可以看下面这篇具体的文章有更详细的介绍:《不同位置设置EnableViewState的效果》

扩展阅读:

enableviewstatemac详解       错误地用 EnableViewStateMac     Asp.net EnableViewState属性

五、该属性使用场景及性能分析

由于页面中的每一个控件都含viewstate,并且所有的属性默认都是开启的,因此当数据量很大控件很多的时候严重影响了页面性能,但是还不能一股脑的全部禁用了,如果全都禁用,某些控件作用就会失效,此种情况下应该合理的应用来提升其相应的性能。

基于页面性能的考虑,我们会这样做,首先直接在web.config这个配置文件中直接设置enableviewstate=”false”,配置文件中禁用的作用就是所有控件和所有页面中全部禁用了该属性,当某一个控件儿需要用到时单独启用该控件viewstate功能,这样既不会影响性能,又不会影响该属性的使用,具体详见下图的操作。

提升页面性能的设置

               IT教程屋                                java教程分享

百度云网盘视频教程分享

责任声明:文章信息由IT教程屋小编精心整理总结编排而成,倾注了心血和汗水,转载时请遵循行业规范务必注明文章作者、来源及本页链接,谢谢合作!
本篇文章标题:html enableviewstate 使用属性功能有什么作用及无效原因
本篇文章url地址:http://www.itjcw123.cn/3704.html