【问题标题】:losing session storage data after reopen the browser重新打开浏览器后丢失会话存储数据
【发布时间】:2016-05-28 17:48:41
【问题描述】:

在执行浏览器中创建的会话的功能后。我关闭并打开会话将清除的同一浏览器。

$scope.logIn = function () {        
        $http(
            {
                method: 'post',
                url: 'Service.asmx/fn_CheckLogin',
                data: $.param({ strMob: $scope.login.mob, strPwd: $scope.login.pwd }),
                dataType: 'json',
                headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
            }).success(function (data, status, headers, config) {                               
                    sessionStorage.user = data[0].UserName;                
                    sessionStorage.loggedIn = true;                                
            }).error(function (data, status, headers, config) {
                sessionStorage.user = '';                  
                    sessionStorage.loggedIn = false;    

            });
    };

【问题讨论】:

  • 这就是会话存储的工作原理。如果您希望在关闭浏览器后仍保留数据,请使用 localStorage - developer.mozilla.org/en/docs/Web/API/Window/localStorage
  • @Nannakuhtum 感谢您的支持。我是网络应用程序的新手。以下代码是我得到的一些网站,是否可以在文档加载if (sessionStorage.loggedIn) { $scope.ngLogin = sessionStorage.user; $scope.loggedIn = sessionStorage.loggedIn; $('#divUser').show(); $('#divLoginNav').hide(); } else { $scope.loggedIn = false; $('#divUser').hide(); $('#divLoginNav').show(); } 上使用以下代码

标签: angularjs html session


【解决方案1】:

使用 $localStorage。 这是链接:https://github.com/gsklee/ngStorage

【讨论】:

  • 谢谢你。怎么做。用户登录网站并关闭浏览器而不注销。他再次打开同一个浏览器如何检测登录。 ??我是网络应用程序的新手,我正在使用 html、angular js 和 asp.net(VB)
  • 如果你在 $localStorage 中存储任何东西,即使你关闭浏览器也不会去任何地方。 ex: $localStorage.userKey = "key" 保存在浏览器中,你可以在你的应用中使用
  • 浏览github url,那里都有解释
【解决方案2】:

回答 OP 添加的评论。

是的,可以在您的角度控制器中准备好的文档上执行代码。

在你的基本(主)控制器中添加以下事件:

angular.element(document).ready(function () {
   // code you need to execute on document ready
});

会话存储:

当页面会话结束时,存储在 sessionStorage 中的数据会被清除。只要浏览器打开并在页面重新加载和恢复后仍然存在,页面会话就会持续。 在新标签页或新窗口中打开页面会导致启动新会话,这与会话 cookie 的工作方式不同。

MDN reference

编辑(回答 Op 对此答案的评论):

要在用户关闭浏览器后维护信息,您需要用户localStorage

google一下,用法和sessionStorage差不多,简单易懂。找到这个codepen 或许可以帮助你。仍然阅读它,然后才使用它。

此外,如果您愿意讨论,我建议您仅将用户名存储在 localStorage 中,而不是像 logedIn 这样的标志,而是在 server 上维护此信息。然后,每当用户关闭一个系统上的浏览器并从另一个系统登录并注销时。他将从他使用过的所有系统中注销。这是大多数 Web 应用程序可接受的行为。

【讨论】:

  • 谢谢你。怎么做。用户登录网站并关闭浏览器而不注销。他再次打开同一个浏览器如何检测登录。 ??我是网络应用程序的新手,我正在使用 html、angular js 和 asp.net(VB)
  • 你能给我一个关于 session_start() 的描述吗?在 php 中
猜你喜欢
  • 2014-10-28
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
  • 2011-04-11
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
相关资源
最近更新 更多