刷新浏览器时,sessionStorage消失了 - Javascript

时间:2015-03-04 17:48:50

标签: javascript angularjs local-storage session-storage

我正在尝试在sessionStorage中保留一些数据,但如果我刷新页面或从链接中退出然后返回,则sessionStorage不再存在。

我是sessionStorage的新手,很抱歉,如果这是一个明显的解决方法。

基本上我将一个数组存储到sessionStorage中。

  $scope.addPlant = function(plant) {
    for (i = 0; i < $scope.userPlantList.length; i++) {
      if ($scope.userPlantList[i] === plant) {
        alert("You have already added this plant");
        return;
      }
    }
    $scope.userPlantList.push($scope.currentPlant);
    sessionStorage.setItem("Plants",JSON.stringify($scope.userPlantList));
  };

然后当我想知道所有存储的内容时

  $scope.retreiveList = function() {
    var retrieved = sessionStorage.getItem("Plants");
    $scope.userPlantList = JSON.parse(retrieved);
  }

当我不刷新页面/应用程序时,这很好用。

问题:如何在刷新/立即重访期间让我的sessionStorage持续?

2 个答案:

答案 0 :(得分:7)

通过查看开发人员工具

来检查数据是否真的消失了

如果您使用chrome:F12 - &gt;资源标签 - &gt;会话存储。

sessionStorage与浏览器标签一起生效。无论何时关闭选项卡,都会清除会话存储数据。

如果您想要在标签之间共享的内容,请查找localStorage。

答案 1 :(得分:0)

我建议使用角度

中的$window提供程序
// set
$window.sessionStorage.setItem('Plants', angular.toJson($scope.userPlantList));
// get
$scope.userPlantList = angular.fromJson($window.sessionStorage.getItem('Plants')) || [];