整个会话存储浏览器(作用域)或LocalStorage在退出时被删除

达利波

是否有任何机制可以让我在浏览器级别处理这些值?我的意思是:

  • 我可以在浏览器的ANY选项卡中访问值的sessionStorage(类似于服务器端会话)

  • 在会话结束时将被删除的localStorage(关闭浏览器时,而不是选项卡时)

例如,视频在播放器的一个选项卡中开始。某些标志存储在这种存储中。当用户使用相同的网址打开另一个标签时,应用应读取该标志并拒绝播放视频。当然,应在退出时将其删除,否则标志将拒绝该浏览器中所有以后的请求。有什么建议?

达利波

最后,我放弃了服务器端会话,因为它提出了其他问题,并通过以下工作流程解决了该问题:

  • 页面加载后,将设置localStorage值(如果以前从未设置过),并在此选项卡中标记播放器已打开。如果已经设置了localStorage,则将标志设置为false。

  • 如果设置了标志,则播放视频,否则禁止播放。

  • 在页面卸载时,仅当设置了标志(即,如果用户在此选项卡中打开了视频)时,才删除localStorage值。

$(function () {
    if (localStorage.playerTabOpened) {
        var dateNow = Date.now();
        var diffSinceLastTabOpened = (dateNow - localStorage.playerTabOpened) / 1000;
        // if playerTabOpened value was stored more than 1 day ago, delete it anyway because it could be left by chance
        if (diffSinceLastTabOpened > 86400) {
            localStorage.removeItem("playerTabOpened");
        };
    }
    if (!localStorage.playerTabOpened) {
        shared.playerTabOpenedHere = true;
        localStorage.setItem("playerTabOpened", Date.now());
    } else {
        shared.playerTabOpenedHere = false;
    }
});

$(window).on("beforeunload", function () {
    if (shared.playerTabOpenedHere) {
        localStorage.removeItem("playerTabOpened");
    }
});

if (shared.playerTabOpenedHere) {
    // play
} else {
    // throw error
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用“返回”按钮后,localStorage被删除(所有浏览器)

来自分类Dev

Symfony2:记住我,重新打开浏览器时cookie被删除

来自分类Dev

永久Cookie在浏览器关闭时被删除-Identity 2.0

来自分类Dev

浏览器何时删除会话Cookie?

来自分类Dev

浏览器何时删除会话Cookie?

来自分类Dev

关闭浏览器后,cookie被删除

来自分类Dev

Python关闭时如何退出网络浏览器会话?

来自分类Dev

关闭浏览器时的会话超时

来自分类Dev

在浏览器中输入网页时,域名后的第一个斜杠将被删除

来自分类Dev

主干网永久登录-在浏览器退出时已删除登录

来自分类Dev

退出MatDialog在移动浏览器中不起作用

来自分类Dev

在浏览器和会话中将数据存储为Cookie

来自分类Dev

会话未存储在Django的浏览器中

来自分类Dev

关闭浏览器窗口后,如何防止Google Chrome浏览器删除会话Cookie?

来自分类Dev

使用ajax或退出浏览器时自动注销PHP

来自分类Dev

如何在浏览器崩溃时清除localStorage?

来自分类Dev

Angular 5 - 浏览器关闭时清除 localStorage

来自分类Dev

关闭浏览器或标签浏览器时,使用OWIN关闭会话

来自分类Dev

当浏览器关闭时,阻止会话过期

来自分类Dev

浏览器关闭时销毁会话-Ruby on Rails

来自分类Dev

当浏览器关闭时,PHP会话Cookie会过期

来自分类Dev

当浏览器在MVC中关闭时,阻止会话过期

来自分类Dev

浏览器关闭时销毁会话-Ruby on Rails

来自分类Dev

从远程会话粘贴时,谷歌浏览器崩溃

来自分类Dev

express-session 在浏览器关闭时更改会话

来自分类Dev

关闭文件浏览器后,我的C ++程序将被删除

来自分类Dev

浏览器如何删除不再使用的本地存储?

来自分类Dev

AJax删除在某些浏览器中不起作用

来自分类Dev

如何实现在退出作用域时恢复价值的作用域保护器?

Related 相关文章

  1. 1

    使用“返回”按钮后,localStorage被删除(所有浏览器)

  2. 2

    Symfony2:记住我,重新打开浏览器时cookie被删除

  3. 3

    永久Cookie在浏览器关闭时被删除-Identity 2.0

  4. 4

    浏览器何时删除会话Cookie?

  5. 5

    浏览器何时删除会话Cookie?

  6. 6

    关闭浏览器后,cookie被删除

  7. 7

    Python关闭时如何退出网络浏览器会话?

  8. 8

    关闭浏览器时的会话超时

  9. 9

    在浏览器中输入网页时,域名后的第一个斜杠将被删除

  10. 10

    主干网永久登录-在浏览器退出时已删除登录

  11. 11

    退出MatDialog在移动浏览器中不起作用

  12. 12

    在浏览器和会话中将数据存储为Cookie

  13. 13

    会话未存储在Django的浏览器中

  14. 14

    关闭浏览器窗口后,如何防止Google Chrome浏览器删除会话Cookie?

  15. 15

    使用ajax或退出浏览器时自动注销PHP

  16. 16

    如何在浏览器崩溃时清除localStorage?

  17. 17

    Angular 5 - 浏览器关闭时清除 localStorage

  18. 18

    关闭浏览器或标签浏览器时,使用OWIN关闭会话

  19. 19

    当浏览器关闭时,阻止会话过期

  20. 20

    浏览器关闭时销毁会话-Ruby on Rails

  21. 21

    当浏览器关闭时,PHP会话Cookie会过期

  22. 22

    当浏览器在MVC中关闭时,阻止会话过期

  23. 23

    浏览器关闭时销毁会话-Ruby on Rails

  24. 24

    从远程会话粘贴时,谷歌浏览器崩溃

  25. 25

    express-session 在浏览器关闭时更改会话

  26. 26

    关闭文件浏览器后,我的C ++程序将被删除

  27. 27

    浏览器如何删除不再使用的本地存储?

  28. 28

    AJax删除在某些浏览器中不起作用

  29. 29

    如何实现在退出作用域时恢复价值的作用域保护器?

热门标签

归档