0

AmplifyJS ストアを使用しています。永続ストレージの良いラッパーだと思います。私はそれを JQuery プラグインで使用してきましたが、かなりうまく機能します。

windowしかし最近、オブジェクトで名前空間変数を使用して同じことを行うことができるかどうか疑問に思っていました!

AmplifyJS Store + JSON2.js (データのシリアライゼーションに必要) を使用すると、ファイル サイズだけで 22Kb (8Kb 縮小) のコストがかかりますが、その周りに作成しなければならなかった追加のサポート コードは言うまでもありません。また、私は sessionStorage のみを使用しています (つまり、ウィンドウがアクティブな間のみ、ブラウザー ウィンドウを閉じた後は永続化する必要はありません)。

windowでは、特定の状況で AmplifyJS Store の代わりにオブジェクトを使用できない主な理由は本当にありますか?! この機能について考えてみましたexpiryが、同じ機能を数行のコードで簡単に組み込むことができます。

ありがとう。

4

2 に答える 2

3

itslef による window オブジェクトの HTML5 localStorage には、非常に単純な API があります。

 var valueOfName = window.localStorage.getItem("name");
 window.localStorage.setItem("name", "value");

グローバル ウィンドウ オブジェクトを省略することもできます。

 var valueOfName = localStorage.getItem("name");
 localStorage.setItem("name", "val");

さらに、配列スタイルの表記を適用できます。

 var valueOfName = localStorage["name"];
 localStorage["name"] = "value";

それだ!また、古い Cookie アプローチで発生した API の有効期限、URL 文字列、またはその他の複雑さはありません。AmplifyJs が (私が見ることができるように) 提供するものはすべて、元の localStorage と同じ API を提供することによる古いブラウザー (Cookie を使用していた) のサポートです。

つまり、Netscape Navigator、Mosaic、および IE 7 を対象としていない場合は、AmplifyJS の使用を忘れて、ネイティブの localStorage API を適用できます。

ただし、アプローチにもかかわらず、ローカルブラウザーに完全に依存しているため、クライアント側の永続性に絶対に依存しないでください (クライアントは単にキャッシュをクリアしたり、何かを再インストールしたり、他のコンピューターからサインインしたりすることができます) - サーバー側のデータベースを使用し、同様のユーザーの情報を保存するための技術。

于 2013-06-14T21:37:51.417 に答える
1

実際に永続データ (ページをリロードしたり、ユーザーが別の場所に移動したりしても存在するデータ) を保存しようとしている場合、それを window オブジェクトに保存することはできません。後で確認すると、データは存在しません。

于 2013-06-14T19:30:02.633 に答える