在会话和缓存中存储数据表有什么区别?优点和缺点是什么?

因此,如果它是一个以DataTable形式返回结果并将其绑定到网格视图的简单搜索页面.如果用户‘a’搜索和用户‘b’搜索,最好将其存储在会话中,因 for each 用户很可能有不同的结果,或者我是否仍然可以将他们的每个搜索存储在Cache中,或者这是否没有意义,因为只有一个缓存.我想基本上我想说的是缓存是否会被覆盖.

推荐答案

一个重要的区别是,缓存中的项目可能会在指定的时间后过期(将从缓存中删除).放入会话中的项目将一直保留在那里,直到会话结束.

当可用内存量变小时,ASP.NET还可以从缓存中删除项目.

另一个区别是:会话状态可以保持在外部(状态服务器、SQL server),并在web应用的多个实例之间共享(用于负载平衡).缓存的情况并非如此.

除了这些差异(正如其他人所指出的):会话是每个用户/会话的,而缓存是每个应用程序的.

Asp.net相关问答推荐

页面刷新后如何存储JS Select 数据

Swashbuckle 通过 .NET 应用程序中的 XML 注释使用格式标识符

如何在没有 Select 按钮的情况下在 GridView 中实现全行 Select ?

ASP MVC 授权除少数之外的所有操作

如何判断 IIS 是处于 32 位还是 64 位模式

Asp.Net 会话在 ashx 文件中为空

如何在没有实体框架的情况下使用 ASP.NET Identity 3.0

从 RowDataBound 事件的 gridview 从单元格中获取值

使用 JSON.NET 解析 json 字符串

Web Api 参数始终为空

如何在 ASP.Net 的客户端 (JavaScript) 上判断 Page.Validate()?

在 Visual Studio 2010 Professional 中找不到请求的 .Net Framework 数据提供程序

如何在 ASP.NET 中通过 LAN 访问您的网站

在 C# 中动态创建 Json

为什么在 MVC4 Razor 布局文件中无法识别 @Scripts 和 @Styles 命令?

Application_Start 和 Application_OnStart 之间的区别

为什么 Controls 集合不提供所有 IEnumerable 方法?

服务器标签格式不正确错误

如何加密 web.config 中的一项

ASP.NET MVC2/3 中runAllManagedModulesForAllRequests的正确用法是什么?