2012-08-25 57 views
0
  1. 我有一个页面设置一个会话变量来保存页面加载时页面的数据库查找列表。当用户离开页面时删除会话变量

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

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

回答

2

可以使用这样的事情

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

但是用JavaScript清除会话变量,这也不是万无一失,因为用户总是可以禁用javascript等。通常这不会是因为一个问题无论如何,session变量会有一个超时。如果你真的担心,你应该删除页面加载的任何当前会话。

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

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

+0

哦,我喜欢设置到期的想法。 –

相关问题