asp.net – 哪个更适合性能视图状态或会话
我必须将数千条记录的数据存储在数据表中并在回发时进行维护.哪个选项适合我viewstate(我使用过)或session.当我使用viewstate时,它将创建隐藏字段以存储它并减慢页面加载速度.因此,在将其存储在会话中时,是否存在任何开销(服务器端内存消耗和响应中的延迟).请建议我的解决方案
解决方法
对于大量数据,Session更有效.如果您可以检测用户何时完成特定数据块,请将Session变量设置为null,以帮助释放内存开销.你不能总是这样做,但会话最终会过期,然后回收内??存.降低会话超时可以帮助一些,但不要设置太小,你不想切断你的用户.需要在Web.config文件中启用会话.
以下是Session与ViewState的基本指南: ViewState:ViewState的二进制数据结构是Base64编码放置到页面中,这意味着它是原始二进制数据大小的1.3333倍(8/6).为每个页面视图上载和下载此数据.因此,如果您在ViewState中有很多,它会影响页面响应时间. Base64编码可能已经过高度优化,因此不会影响性能.每个页面请求将分配,然后释放ViewState的空间,因此它不是长期内存命中.由于数据在页面中,因此不会过期. 会话:会话中的所有数据都在页面加载之间保留在Web服务器中.这使页面保持较小,只需携带会话标识符.在不利方面,用于在会话中存储数据的任何内存都会保持分配,直到会话到期为止.我想知道会话是复制二进制数据还是只保留一个指针.与Base64编码一样,这可以进行高度优化,因此如果发生这种情况,则不会影响性能.如果用户在页面浏览之间等待太长时间,则会话可能会过期.如果会话到期,它应该将用户返回到网页中的某个已知状态. 这里的另一个问题是,如果您在会话中存储信息,则会话ID可以在客户端浏览器中的多个选项卡之间共享.您必须小心如何使用会话中存储的数据.请确保对此进行测试,以免您的用户获得意外结果. (注意:使用ViewState是RESTful,Session不是.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 我们可以在网页中使用多种形式吗?
- asp.net上传文件到数据库的解决方案
- asp.net core 使用 signalR(二)
- asp.net-mvc – 检查上传的文件是否是C#ASP.NET MVC中的图像
- asp.net-mvc – asp.net mvc – 在哪里存储userid – integ
- asp.net-mvc – 在asp.net MVC3中调用局部视图
- 用ASP.net检测iPad
- ASP.NET,MySQL与SQL Server中的数据库连接
- asp.net – 如何在web.config中读取会话状态信息
- asp.net-web-api – Asp.net WebApi将UTC时间字符串反序列化
- 有没有办法为ASP.Net Web应用程序安装程序创建补
- ASP.NET Razor查看Html.TextBox大小/宽度
- asp.net – SQL Server 2005 – 您应该多久重建一
- asp.net – jQuery flot,来自SQL Server的Live p
- asp.net-mvc-4 – SimpleMembershipInitializer不
- 使用ASP.Net webforms和MVC进行Ninject
- 在ASP.Net MVC中控制JsonResult中的序列化器也称
- 在ASP.NET MVC4中是否可以将C#或VB函数标记为Jav
- asp.net-mvc – 在存储库中使用Blocks有什么问题
- 从ASP.Net MVC视图访问应用程序设置