Javascript ngStorage和$window.localStorage之间的差异

Javascript ngStorage和$window.localStorage之间的差异,javascript,angularjs,local-storage,angular-directive,ng-storage,Javascript,Angularjs,Local Storage,Angular Directive,Ng Storage,ngStorage和$window.localStorage之间的区别是什么?什么时候用一个代替另一个更好? 我必须为web应用程序选择其中一个。我必须保存配置文件用户和令牌的数据变量$window通常是全局窗口变量。Angular建议使用$window的原因是,有时您希望模拟或替换“真实”的window对象(例如,出于测试目的) 使用$window.localStorage表示您使用的是本地存储的香草API,而ngStorage是 AngularJS模块,使Web存储以角度方式工作。 包含两项

ngStorage和$window.localStorage之间的区别是什么?什么时候用一个代替另一个更好?
我必须为web应用程序选择其中一个。我必须保存配置文件用户和令牌的数据

变量
$window
通常是全局
窗口
变量。Angular建议使用
$window
的原因是,有时您希望模拟或替换“真实”的
window
对象(例如,出于测试目的)

使用
$window.localStorage
表示您使用的是本地存储的香草API,而ngStorage是

AngularJS模块,使Web存储以角度方式工作。 包含两项服务:
$localStorage
$sessionStorage


Source

这是正常的html5本地存储:

通过本地存储,web应用程序可以在用户浏览器中本地存储数据。在HTML5之前,应用程序数据必须存储在cookie中,包括在每个服务器请求中。本地存储更安全,大量数据可以在本地存储,而不会影响网站性能。与Cookie不同,存储限制要大得多(至少5MB),信息永远不会传输到服务器。本地存储是按源(按域和协议)进行的。来自同一来源的所有页面都可以存储和访问相同的数据

它为您提供了访问存储的对象-window.localStorage和window.sessionStorage

window.localStorage-存储没有过期日期的数据

window.sessionStorage—存储一个会话的数据,因此关闭浏览器选项卡时数据将丢失

要检索数据,您可以执行以下操作

localStorage.getItem("lastname"); 
因此,如果您想在angular中执行此操作,您可以使用$window服务,但其行为与上面的示例相同


要解决存储问题,请执行以下操作:

AngularJS模块,使Web存储以角度方式工作。包含两个服务:$localStorage和$sessionStorage。不要像在$window服务中那样处理getter和setter

您可以在$scope下通过引用传递$localStorage或$sessionStorage:

$scope.$storage = $localStorage;
然后可以使用$storage作为和其他角度变量

<body ng-controller="Ctrl">
    <button ng-click="$storage.counter = $storage.counter + 1">{{$storage.counter}}</button>
</body>

{{$storage.counter}



如果你将在你的webapp中使用angularjs,我会使用ngStorage,因为你会更熟悉语法。不过这只是我的观点。

请注意,ngStorage内部使用一个角度表来监视
$storage
/
$localStorage
对象的更改,即需要一个摘要周期来将新值可靠地保存到浏览器的本地存储中。通常没有问题,但是如果您在
$localStorage
中存储了一个值,并且在没有发生摘要循环的情况下打开了一个新选项卡,您可能无法在新打开的选项卡/窗口中看到存储的值

在IE上遇到这个问题,必须使用
window.localStorage
来解决

var setLocalStorage = function (token, uname)
{
$localStorage.token = token;
$localStorage.name = uname;

}
$timeout(setLocalStorage(token, userForm.uname), 500);
使用的模块:NGS存储


它起作用了

更明确地说,ngStorage将为您处理序列化方面的问题,这可以节省时间。