Ajax 当用户离开页面时删除会话变量

Ajax 当用户离开页面时删除会话变量,ajax,asp.net-mvc-2,session-variables,Ajax,Asp.net Mvc 2,Session Variables,我有一个页面,它设置了一个会话变量,以便在加载页面时保存该页面的数据库查找列表 当从浏览器进行Ajax调用时,页面还需要访问该查找列表 我不想为每个Ajax调用从数据库加载查找列表,但如果用户离开页面,我想从会话中删除查找列表。有没有最佳实践或建议的策略来执行此操作?您可以使用类似的方法使用javascript清除会话变量 window.onbeforeunload = cleanup; function cleanup() { // Clear session variable her

我有一个页面,它设置了一个会话变量,以便在加载页面时保存该页面的数据库查找列表

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


  • 我不想为每个Ajax调用从数据库加载查找列表,但如果用户离开页面,我想从会话中删除查找列表。有没有最佳实践或建议的策略来执行此操作?

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

    window.onbeforeunload = cleanup;
    function cleanup()
    {
        // Clear session variable here
    }
    
    然而,这并不是万无一失的,因为用户总是可以禁用javascript等。通常这不会是一个问题,因为会话变量无论如何都会有一个超时。如果您真的担心,您应该删除页面加载上的所有当前会话

    根据您的情况,另一个选项是使用类来保存值。当您将这些值输入缓存时,可以将它们设置为在
    时间跨度
    后过期,只需将其设置为非常短的时间,比如5分钟左右


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

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