ローカル・データ・ストレージ・ソリューションとクッキーのピット
問題:
ページを開くには失敗が生じ長すぎるクッキー、
背景:
そこに同じページ上で、よりオープンなタブ(インラインフレーム)で、よりオープンな作業順序の需要があるが、唯一の企業のプロジェクトでのiframeリフレッシュは、2つのリフレッシュがある場合、現在のページがまだ多くを保持して更新する必要があります途中、最初の1は、キーボード、F5キーを押しまたはCtrl + F5またはCtrl + Rは、第二は、キーボードだけを更新するにはF5]をクリックして到達したデフォルトのイベントリスナーを防ぐことができ、時間をリフレッシュするには、ブラウザのリフレッシュ左上隅をクリックしてF5をクリックしています現在のiframeが、ユーザーはバックエンドがとてもそのように上のHREFとを含む、現在開いているのiframe内の情報の一部を記録しておく必要があり、ページをリロード要求しなければならないブラウザの更新をクリックしたとき。
これだけのiframeを解決する更新するにはF5をクリックします。
コードは以下の通りであります:
//F5键 F5 和 ctrl R 只刷新当前iframe
document.onkeydown = function (e){
e = e || window.event;
if((e.ctrlKey && e.keyCode == 82) || e.keyCode == 116) {//F5 和 ctrl R 刷新,禁止
var cur_href= window.location.href; //获取到当前iframe的href
e.preventDefault(); //阻止默认刷新
location.href=cur_href; //刷新当前iframe
}
}
解決ブラウザの更新(ピット)をクリックしてください:
すると、など、情報へのサーバーへの再アドレス要求へのアクセスを望む必然的になり、あなたのブラウザを更新]をクリックし、そのプロセスはインラインフレームHREFやタイトルの情報で開いたままにしなければならないのiframeの前で、より開かれて、その後、ピットが来ました。
溶液1:さらに、エンド後方開放進む複数の情報格納されたIFRAMEはiframeの要求を送信する後端にIFRAMEオープン格納された情報、各オープン
利点:
- シンプルで、粗
短所:
- 各開口または要求の後端を閉じるには、効率の問題がIFRAME存在していました
クッキーピットの対処方法2は:バックエンドに保存されたiframeの情報を開けないでください、ローカルのブラウザのクッキーに保存されています
利点:
- シンプルで、粗
- データはローカルに、バックエンド、高効率と相互作用しません
短所:
- クッキーのサイズが制限され、各ドメイン名の制限の下の番号は、各クッキーのデータサイズは4キロバイトを超えることができないことが重要である(限界最大のポイント)
- クッキーの有効時間の設定を、あなたは有効期限を設定しない場合は、ローカルに保存されていたであろう、ブラウザが可能過度の数で、その結果、自動的に破壊されず、ハードディスクに保存されます閉じます
- セキュリティが高くありません
- サーバーへのすべてのアクセスは、帯域幅を無駄に、クッキーを送信します
時間は考慮していない間、他の同僚にもクッキーをたくさん使用を考慮に入れて、このプロジェクトをする時間ではありませんした後、ユーザーは多くはiframeは、クッキーの値は(生活し、学び、あまりにも長いページが開かれたように、最終的に失敗クッキーにされたリード、リミット4キロバイトを超えた原因開きますレッスン)
:ののlocalStorage第三ソリューションのlocalStorageに保存されているifrmae情報
利点:
- シンプル
- ストレージサイズは、使用するのに十分5Mであり、
- ローカルに保存され、バックエンドと相互作用しません
短所:
- localStorageに保存されたデータの数が永続的にローカルに保持され、クローズセッションを(ブラウザのタブを閉じたり、ブラウザを破壊しない閉じます)
- ユーザーの後に需要がブラウザのタブを閉じたり、これらの保存されたiframeの情報を消去するには、ブラウザを閉じて、そのデータのlocalStorageがきれいではないので(理由:お使いのブラウザで閉じて耳を傾けないJS)
sessionStorageの解決策4:情報はifrmaeでのsessionStorageに保存されています
利点:
- シンプル
- ストレージサイズは、使用するのに十分5Mであり、
- ローカルに保存され、バックエンドと相互作用しません
- セッションの存在に基づいて、セッションは、データクリーニングを(単に製品の需要、完璧なソリューションを満たす)クローズ
この方法は、以下のものを含みます:
保存localStorage:localStorage.setItem("key","value");
获取localStorage:localStorage.getItem("key");
保存sessionStorage:sessionStorage.setItem("key","value");
获取sessionStorage: sessionStorage.getItem("key");