0
  1. 我有一个页面,该页面设置了一个会话变量,以在加载页面时保存来自该页面的数据库的查找列表。

  2. 当从浏览器进行 Ajax 调用时,该页面还需要访问该查找列表。

我不想为每个 Ajax 调用从数据库中加载查找列表,但如果用户离开页面,我想从会话中删除查找列表。是否有这样做的最佳实践或推荐策略?

4

1 回答 1

2

您可以使用类似这样的方法使用 javascript 清除会话变量

window.onbeforeunload = cleanup;
function cleanup()
{
    // Clear session variable here
}

然而,这并不是万无一失的,因为用户总是可以禁用 javascript 等。通常这不会是一个问题,因为会话变量无论如何都会有超时。如果您真的很担心,您应该在页面加载时删除所有当前会话。

根据您的情况,另一种选择是使用Caching.Cache类来保存值。当您值插入缓存时,您可以将它们设置为在 a 之后过期TimeSpan,并将其设置为相当短的时间,例如 5 分钟左右。

请注意,虽然会话是每个用户的,但每个服务器实例只有一个缓存。

于 2012-08-25T16:35:53.990 回答