会话变量在开发大型Web应用程序时有哪些限制。 还有什么是会话变量的最佳替代方案。
请提供 会话变量的替代方案
答案 0 :(得分:18)
要了解不使用会话的优点,您必须了解会话的工作原理。
在默认设置中
当用户向服务器发送请求时,将发送会话cookie。它包含服务器用于定位特定用户的会话数据的标识符。
您可以将ASP.NET配置为
现在有了禁用会话状态的优点:
毋庸置疑,通过为大量用户存储大量数据会加剧这些问题。
有关详细信息,请参阅
(上一篇文章有点陈旧,但仍然是一本很好的读物)。
<强>替代强>
希望这有帮助。
答案 1 :(得分:1)
会话变量的优点和缺点See Here
答案 2 :(得分:1)
这取决于你的应用程序的业务逻辑在某些情况下会话可能是最好的选择,但是有很多选择,如果你为你的应用程序的每个请求提供不同的数据,应该使用Session,你可以发布你的隐藏字段中的数据与您的表单,但再次你的问题是一点点的轨道,你必须分析你的要求,而不是根据你必须决定是否使用会话或一些其他替代解决方案,如果我必须存储id的对于用户而言,我肯定会参加会议,因为每个用户都会有所不同,我不会在会话中保留非常大的数据,例如将数据集保存在少数开发人员所做的会话中。然后,如果你想使用会话或在服务器中使用会话,也会出现问题,如果你在服务器中保存会话这是非常昂贵的,但在ssome场景中它非常有用。
答案 3 :(得分:0)
由于会话状态中的数据存储在服务器内存中,因此在处理大量数据时不建议使用会话状态。会话状态变量会一直保留在内存中,直到您将其销毁为止,因此内存中的变量太多会影响性能。
会话变量和cookie是同义词。因此,如果用户将其浏览器设置为不接受任何cookie,则您的会话变量将不适用于该特定网络冲浪者!
当用户访问页面时,会创建每个会话变量的实例,并且这些变量会在用户离开页面后持续20分钟! (实际上,这些变量一直存在,直到它们“超时”。这个超时长度由网络服务器管理员设置。我看到网站变量将在3分钟内崩溃,而其他变量将持续10分钟,还有其他变量默认持续20分钟。)因此,如果你在Session中放置任何大型对象(例如ADO记录集,连接等),你就会遇到严重的麻烦!随着访问者数量的增加,您的服务器将通过在会话中放置大型对象来体验到惊人的性能问题!