24

sessionStorage我已经了解(在会话期间保持)和localStorage(如果不删除则永远保持)之间的区别。

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

但是对于sessionStorage,我在想什么时候应该有效地使用它?

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

我真的不能比上面的场景扩展我的猜测。谁能告诉我如何使用 sessionStorage?

4

2 回答 2

30

使用 ajax 驱动的动态界面,很多时候没有存储界面外观的当前状态(例如,选择了哪个选项卡)。sessionStorage可用于存储界面的状态,因此当返回到页面时,您可以恢复用户查看屏幕的方式。

另一种用途是,如果您正在处理单个对象的多个页面,则可以将 id 存储为全局变量:currentInvoiceId.

每个页面上需要的用户设置,例如特殊的布局或模板,可以预先加载一次并放入sessionStorage以便于访问。

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

<input>它是使用视图状态、隐藏字段或 URL 参数在页面之间传递数据的好选择。

于 2011-12-14T01:28:35.903 回答
17

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

于 2019-02-01T00:31:09.640 回答