我有一个页面设置会话变量,以便在加载页面时保存页面数据库中的查找列表。
当从浏览器调用Ajax时,页面还需要访问该查找列表。
我不想为每个Ajax调用加载数据库中的查找列表,但是如果用户离开页面,我想从会话中删除查找列表。这样做是否有最佳实践或推荐策略?
答案 0 :(得分:2)
您可以使用javascript清除会话变量
window.onbeforeunload = cleanup;
function cleanup()
{
// Clear session variable here
}
然而,这并非万无一失,因为用户总是可以禁用javascript等。通常这不会是一个问题,因为会话变量无论如何都会有一个超时。如果您真的担心,您应该删除页面加载时的所有当前会话。
根据您的具体情况,另一个选择是使用Caching.Cache
类来保存值。当您将值insert放入缓存中时,可以将它们设置为在TimeSpan
之后过期,并将其设置为非常短,例如5分钟左右。
请注意,虽然会话是每个用户,但每个服务器实例只有一个缓存。