0

在 Firefox 中的当前站点上使用会话存储时,我看到了奇怪的行为。

当用户导航到站点时,会话存储值设置如下:

sessionStorage.setItem(cacheKey, cacheValue);

然后我执行检查以查看会话密钥在站点的后续页面上是否具有特定值。如果是这样,那么我运行一个函数,如果不是,那么不要。

但是,如果用户在 Firefox 中打开了“恢复会话”功能,浏览器似乎会存储会话密钥而不是值(空字符串)。我对随后失败的值进行检查,因为该值现在为 null 或空字符串。

有没有更强大的方法来处理这种行为?

4

1 回答 1

1

对于像这样的意外行为,如果“恢复的”会话没有保留该值,我会将其视为新会话。

对值进行简单的空检查就足够了。

if (window.sessionStorage.getItem(cacheKey) === null) {
    sessionStorage.setItem(cacheKey, cacheValue);
}

我觉得如果将来该值保持不变,您可能希望保留现有值。

于 2012-08-31T09:48:54.437 回答