【问题标题】:Data remove from variable when reload the page重新加载页面时从变量中删除数据
【发布时间】:2017-09-16 15:37:36
【问题描述】:

我正在使用 laravel 和 angular js。在 laravel 中,我使用了事件广播和推送通知。在角度方面,我订阅了频道并收到了该通知。

现在,我已将推送数据存储到一个变量中并将其显示到 html 中。但是,当我重新加载页面时,通知会被删除。

Angular js:

Pusher.logToConsole = true;

var pusher = new Pusher('Pusher-key', {
    cluster: 'ap2',
    encrypted: true
});

var channel = pusher.subscribe('ticket-'+$login_user_id);
channel.bind('ticket-notification', function(data) {
    var i = $scope.notification.length;
    $scope.notification[i] = {"id":data.ticket.id,"subject":data.ticket.subject};
    $scope.total_notification = $scope.notification.length;
    console.log($scope.total_notification);
});

this.update_notification = function(notification_id,index) {
    $scope.notification.splice(index,1);
    $scope.total_notification = $scope.notification.length;
}

现在,我想全局存储 notification 变量。所以当我重新加载页面时,它不会影响该变量,也可以在另一个浏览器中显示。

那我该怎么办?

【问题讨论】:

    标签: javascript angularjs laravel


    【解决方案1】:

    localStorage 将是完美的。 将推送数据设置到 localStorage。现在,每当您重新加载页面时,都可以从 localStorage 获取存储的数据。

    Here 你可以找到更多关于 localStorage 的信息。

    【讨论】:

    • 我无法在其他浏览器中使用它
    • 我猜“另一个浏览器”是指同一浏览器的新窗口。因为如果没有服务器,就无法将数据从 Chrome 传递到 Firefox。
    • 可以使用 PouchDB :tutorialspoint.com/pouchdb/pouchdb_read_document.htm 好不好用? Cz 我对此一无所知。
    【解决方案2】:

    您可以将变量保存在浏览器的本地存储中。所以它不会在刷新时被删除。但是您将无法从其他浏览器中获取它,因为所有浏览器都基于域维护自己的本地存储副本。如果是这种情况,您将不得不开发一些机制来从服务器端获取通知。

    【讨论】:

      猜你喜欢
      • 2018-06-16
      • 2011-04-27
      • 2019-01-28
      • 2011-12-15
      • 2014-01-18
      • 2016-01-23
      • 1970-01-01
      • 2018-03-29
      • 2017-10-20
      相关资源
      最近更新 更多