私は2つのウェブサイトhttp://www.example.comとhttps://www.example.comを持っています。HTML5セッションストレージを使用してユーザー設定を保存しています。ユーザーがhttp://www.example.comにアクセスし、ajaxを介していくつかのデフォルト設定をロードします。ログインが必要なページを参照し、https ://www.example.com/login.htmlに送信されます。ログインが完了すると、 http://www.example.comに 返送されます。サーバーから新しい設定を取得する必要があります。問題は、httpとhttpsが異なるオリジンであり、セッションストレージを共有できないことです。
私が試したことがうまくいかない:データをクリアするためにsessionStorage.removeItem('key')を実行するだけのiframeにページhttp://www.example.com/clearSession.htmlを ロードしますが、これには独自のブラウジングコンテキストがあるため、機能しません。
私がその仕事を試したが、使いたくないもの: クッキーの使用。httpとhttpsはCookieを共有できるため、これはうまく機能しますが、これは、すべてのユーザー設定がすべてのリソース要求でサーバーに送信されることを意味します。これは通常約4kですが、最大1MBのデータになる可能性があります。いいえ、リソースを別のドメインでホストすることはできません。
設定をキャッシュせず、設定を取得するたびにリクエストを送信してください。古いブラウザはセッションストレージをサポートしていないため、これを行っていますが、ページの読み込みが遅くなり、データベースに余分な負荷がかかります。