ローカル・データ・ストレージ・ソリューションとクッキーのピット

ローカル・データ・ストレージ・ソリューションとクッキーのピット

問題:

ページを開くには失敗が生じ長すぎるクッキー、

背景:

そこに同じページ上で、よりオープンなタブ(インラインフレーム)で、よりオープンな作業順序の需要があるが、唯一の企業のプロジェクトでの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");

おすすめ

転載: www.cnblogs.com/alisleepy/p/11200296.html