gpt4 book ai didi

asp.net - 服务器端 View 状态能否解决 ASP.NET 的最大问题之一?

转载 作者:行者123 更新时间:2023-12-04 07:09:14 25 4
gpt4 key购买 nike

我已经阅读了一些关于 ASP.NET MVC 是否值得从“常规” ASP.NET 迁移的 SO 文章。我看到引用的使用 MVC 的最大原因之一是不必使用 Viewstates。

但是,可以通过将服务器上的 View 状态信息存储为 this article 来消除 View 状态。显示。我已经在一个示例项目中尝试过它,效果很好,就我注意到的而言是完全透明的,并且非常容易实现。

那么,问题在哪里?我预计它确实会给服务器带来更高的负载,但它真的有那么糟糕吗?如果没有,为什么没有更多的人使用这种方法而不是提示 View 状态?

最佳答案

viewstate 的唯一问题是滥用它。这很容易发生,因为默认设置是全部开启。您甚至无法在页面上默认将其全部关闭,并有选择地打开特定控件(它们将在 4.0 中添加对此的支持)。您将看到很少有带有 viewstate=false 的代码,并且有了信息列表,它可以快速变大。

甚至有一些第三方控件严重滥用它。我不得不帮助找出为什么页面非常慢(因为它甚至不起作用),结果下载的信息量很大,原因是 View 状态是内容大小的 10+ 倍(真的)而且它是一个第三方控件,它喜欢存储你交给它的所有东西(这变得非常丑陋,因为它被交给了一个对象层次结构)。

所以真正的问题不是 View 状态,而是它的大小。如果您已经遇到大 View 状态的问题(正常大,不是上述极端情况),那么将其移动到服务器上的 session 意味着您将存储大量信息。这正在将问题从一个地方转移到另一个地方,也许会减轻其一些影响,但它并没有解决真正的问题,存储了太多不需要的状态(因为开发人员做了或某些第三方行为不当)。

也就是说,我认为我不会将其称为常规 asp.net 方法的单一主要问题。不要把这当成“不要用它发展”,而更像是“如果你要发展它,就好好了解它”。我经常使用常规的 asp.net,它可以很好地工作。如果我要在这一点上开始,我想我会选择 asp.net mvc,因为我认为常规的 asp.net 需要开发人员做更多的事情才能做到正确。

关于asp.net - 服务器端 View 状态能否解决 ASP.NET 的最大问题之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/640300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com