我什么时候应该使用html5 sessionStorage?

mas*_*san 18 html html5 local-storage web-storage

我已经学会了sessionStorage(在会话期间持续)和localStorage(如果没有删除则永远存在)之间的区别.

我可以看到它localStorage可以用作更好的cookie版本.(更大的尺寸,不是像cookie那样为每个HTTP请求前往服务器).

但是,因为sessionStorage,我在想什么时候才能有效地使用它?

我想到用户输入到pageA中的文本字段,然后在同一个选项卡或浏览器窗口中移动到pageB,pageB可以查找sessionStorage.

我不能真正扩展我的猜测,而不是上面的场景.谁能告诉我sessionStorage怎么用?

Thi*_*iff 22

使用ajax驱动的动态接口,很多时候没有任何东西存储接口外观的当前状态(例如,选择哪个选项卡).sessionStorage可以用来存储界面的状态,因此当回到页面时,您可以按照用户查看它的方式恢复屏幕.

另一个用途是,如果你在一个对象上工作了几页,你可以将id存储为全局变量:currentInvoiceId.

每个页面上所需的用户设置(如特殊布局或模板)可以预先加载并放入sessionStorage以便于访问.

您只希望用户在每次登录时看到一些内容,例如新闻弹出窗口.你可以存储他们已经看过它的东西sessionStorage.这也适用于您每次登录时只希望用户执行一次的操作.

它是使用viewstate,隐藏<input>字段或URL参数在页面之间传递数据的好选择.

  • @DevinRhode 现在我使用 sessionStorage 来存储我想要保留的数据,以防用户重新加载页面 (4认同)
  • 在单页面应用程序中sessionStorage有什么用处,其中状态可以很容易地存储在内存中(javascript对象)? (2认同)
  • @ThinkingStiff 是否在浏览器崩溃后保留 sessionStorage? (2认同)

Ian*_*son 13

使用 sessionStorage 的主要原因是,如果您的用户要在两个不同的选项卡中两次打开同一页面,您需要为这两个选项卡设置单独的存储区域。例如,考虑您购买机票的网站(并且您只能购买一张机票,例如机票流程,而不是购物车的情况)。如果用户尝试在两个不同的选项卡中购买两张票,您不希望这两个会话相互干扰。sessionStorage 允许您在多个页面加载中独立跟踪这些会话。