enableviewstate有什么用?这几个场景很常见!

吉云

咱来聊聊这个 EnableViewState。一开始接触到这个东西,还真有点懵。不过经过一番折腾,总算是把它给搞明白,现在就来跟大家伙儿分享分享我的实践过程。

我做一个网页,需要让它记住用户的操作,比如一个输入框里的内容,下次打开还得在,不然用户体验太差。我就寻思着,这应该咋弄?然后就找到 EnableViewState 这个东西。听说它能让页面记住状态,这不就是我想要的嘛

然后我就开始动手试。我先在一个页面上加一个文本框,然后把它的 EnableViewState 属性设置成 true。你别说,这玩意儿还真好使,我在文本框里输入一些内容,然后点个按钮提交一下,刷新页面后,文本框里的内容还在!这下我心里就有底,原来这 EnableViewState 这么神奇。

enableviewstate有什么用?这几个场景很常见!

  • 我先尝试把页面上所有控件的 EnableViewState 都设置成 true。
  • 然后我就在页面上加一大堆控件,什么文本框、下拉框、复选框等等,一股脑儿全加上去。
  • 结果发现,页面加载速度变慢,而且页面的大小也变大不少。

这是咋回事?后来我一查资料,才知道,原来 EnableViewState 会把控件的状态信息保存在页面里,这样页面回传的时候就能恢复状态。但是,如果页面上控件太多,或者状态信息太大,就会导致页面变大,加载速度变慢,相当于占的流量也大。这不跟吃多饭会撑着一个道理嘛

enableviewstate有什么用?这几个场景很常见!

这可咋办?总不能为记住状态就牺牲性能?后来我又找到一个叫 ViewStateMode 的东西。它跟 EnableViewState 差不多,但是更灵活一些。可以设置成 Enabled、Disabled 和 Inherit 三种模式。Enabled 就是启用 ViewState,Disabled 就是禁用,Inherit 就是继承父控件的设置。这样一来,我就可以根据需要来控制哪些控件启用 ViewState,哪些控件禁用。

摸索出的小技巧

经过一番尝试,我发现一个小技巧。我可以把整个页面的 EnableViewState 设置成 false,这样所有控件默认都不启用 ViewState 。然后,我再把需要记住状态的控件的 EnableViewState 单独设置成 true。这样一来,既能记住状态,又能保证性能,岂不美哉!

比如说,我有一个表单,里面有很多输入框,但是我只需要记住其中一个输入框的内容,那么我就可以把整个表单的 EnableViewState 设置成 false,然后把那个需要记住内容的输入框的 EnableViewState 设置成 true 就行。这样一来,只有那个输入框的状态会被保存,其他输入框的状态都不会被保存,这样页面大小就不会增加太多,性能也就不会受到太大影响。

这个 EnableViewState 还是挺有用的,但是也得注意用法,不然容易把页面搞得又大又慢。咱得根据实际情况来灵活运用,才能达到最好的效果。以上就是我这回实践的一些心得体会,希望对大家伙儿有所帮助!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]