sessionStorage解决Ehcache页面缓存的session登录问题

最近用了一下Ehcache的页面缓存,发现了个问题,头部有显示用户名的情况下,所有页面都显示一个用户名。想了想这个问题,解决办法:

  • 不用缓存,这个也算一种办法,不过这样有点点扯蛋。
  • 每次使用ajax每次都请求一次,这个每个页面都请求一次,感觉也不是很好。
  • 还有就是在客户端保存用户数据了,并且和session的时间是一致的。于是就发现了这个sessionStorage。不过不知道和是不是也有时间限制,这个并没有了解。

最近好忙,很多自己的事情都做不完整。今天早晨起来看了勇敢的心,这个电影真心不错,希望看到这个文章的朋友也去看看吧!希望你也有一颗勇敢的心,一颗自由的心!

我看了一下,发现sessionStorage还是要谨慎使用, 这个只是在同一个浏览器的TAB中会共享,新打开一个TAB的话,就会消失。如果使用cookie来保存数据,不设置过期时间,默认和session的时间一样,但是这样带来的问题就是cookie会在每次请求都传到服务器。

我想到了两种解决方案:

  • 使用cookie:
    在登录的时候写入一个默认时间的cookie保存登录信息,使用js来读取cookie(注意如果设置了cookie的httponly那么JS是不能读取的)。
    缺点:每次请求都需要发送这个没有意义的cookie。

  • 使用sessionStorage
    每次都是用ajax来请求用户信息,然后保存到sessionStorage中。然后使用js读取sessionStorage
    缺点:每打开一个新窗口都需要ajax请求一次。