ngStorageと$ window.localStorageの違いは何ですか?その代わりにもう一方を使用する方が良いでしょうか? 私はそれらの1つをWebアプリケーション用に選択する必要があります。プロファイルユーザーとトークンのデータを保存する必要があります
答えて
これは正常なHTML5のローカルストレージである:ローカルストレージで
、Webアプリケーションは、ユーザーのブラウザ内でローカルにデータを保存することができます は、2つのサービスが含まれています。 HTML5より前には、アプリケーションデータをすべてのサーバー要求に含まれるCookieに格納する必要がありました。ローカルストレージはより安全で、ウェブサイトのパフォーマンスに影響を与えることなく、大量のデータをローカルに保存できます。クッキーとは異なり、ストレージの制限ははるかに大きく(少なくとも5MB)、情報は決してサーバーに転送されません。ローカルストレージは、(ドメインおよびプロトコルごとに)原点ごとです。 1つの原点からのすべてのページは、同じデータを格納してアクセスできます。
これは、ストレージにアクセスするオブジェクトにあなたに与えます - window.localStorageとwindow.sessionStorageの
window.localStorage - 1つのセッションのデータを格納する - 有効期限なしで保存したデータを
window.sessionStorageのデータが失われたように、ブラウザのタブがデータを取得するには
を閉じているとき、あなたはこの
localStorage.getItem("lastname");
ような何かをするだろう
このようにしたい場合は、$ windowサービスを使用しますが、上記の例と同じように動作します。
ngStorage対処するために:アンギュラウェイで働くウェブストレージを作る
アンAngularJSモジュールを。 $ localStorageと$ sessionStorageの2つのサービスが含まれています。次に、あなたのように$ストレージを使用することができます
$scope.$storage = $localStorage;
及びその他:いいえあなたは$ウィンドウサービス
にあなたは$スコープの下で参照することにより$のlocalStorageや$のsessionStorageを渡すことができますに持っているようにゲッターとセッターを扱っていません角度可変の
<body ng-controller="Ctrl">
<button ng-click="$storage.counter = $storage.counter + 1">{{$storage.counter}}</button>
</body>
ウェブアプリケーションでangularjを使用する場合は、ngStorageを使用します。これは、より快適で構文に精通しているからです。それはちょうど私の意見です。
変数$window
は通常、変数window
です。 Angularが$window
を使用することを推奨する理由は、「実際の」window
オブジェクトを模擬したり置き換えたりすることがある(テスト目的など)ためです。
はngStorageが角道で働くウェブストレージを作る
アンAngularJSモジュールでありながら
$window.localStorage
を使用すると、あなたはローカルストレージのバニラAPIを使用していることを意味し、これを言いました。$localStorage
と$sessionStorage
ソースhere
もっと明示的に言えば、ngStorageはあなたのためのシリアライゼーションの面を担当しますが、これは時間を節約できます。 –
ngStorageは内部的にAngularウォッチを使用して$storage
/$localStorage
オブジェクトへの変更を監視します。つまり、新しい値をブラウザのローカルストレージに確実に保存するためにダイジェストサイクルが必要です。通常は問題ありませんが、$localStorage
に値を格納し、ダイジェストサイクルが発生しないで新しいタブを開くと、新しく開いたタブ/ウィンドウに保存された値が表示されない場合があります。
IEでこの問題に遭遇し、それを回避するためにwindow.localStorage
を使用しなければなりませんでした。
var setLocalStorage = function (token, uname)
{
$localStorage.token = token;
$localStorage.name = uname;
}
$timeout(setLocalStorage(token, userForm.uname), 500);
使用機能:ngStorage
それは働きます!
あなたはとてもきれいだった、ありがとう! – panagulis72
問題ありません! – sebenalern