2011-06-30 19 views
0

これまでの経験から、HTML5マニフェストスキームが本当にひどく設計されていると結論付けました。この問題をHTML5マニフェストで解決するにはどうすればよいですか?

私のサイトは、ユーザーがログインしたときにマニフェストファイルを提供します。残念ながら、ログアウトすると、キャッシュされた保護されたマテリアルにアクセスできます。誰もがこれを修正する方法を考えることができますか?

+0

それは単なるWebサイトなのでしょうか。 – DisgruntledGoat

+0

ええ、何も巨大ではありません。キャッシュされた部分は2ページで、JavaScript、CSS、および画像の一部です。 –

答えて

3

マニフェストファイルは、ウェブサイトをオフラインにして、まだナビゲートすることができるように設計されています。基本的には、ブラウザにダウンロードしてキャッシュに保存するように指示するだけです。マニフェストやユーザーに秘密情報を追加することがオフラインになった場合、彼はそれにアクセスできる必要があります。ログインする必要がある場合は、特別なログイン済みマニフェストファイルを持つポイントが必要です(そのためオンライン)。

ユーザーがオンラインになっているかどうかを確認するjavascriptを追加して、 "ログイン状態"を検証し、localstorageから秘密のものをリダイレクトまたは削除しようとします(localstorageを使用して "物とjavascriptはマニフェストファイルの代わりにそれを表示する)

秘密のものは画像であり、マニフェストファイルを使用していないが、ユーザーがログインしたときに画像を表示するだけで、ユーザーは傾けることができますログアウト後にそのイメージを表示するには、httpヘッダーをno-cacheに設定し、キャッシュの有効期限を過去のランダムな日付に設定する必要があります。これにより、通常のユーザーはもう見られなくなります。問題は、誰かがウェブサイトを訪れるたびにイメージがダウンロードされることです。

+0

彼らは最初に資料へのアクセス権を与えられたので、今はオフラインでアクセスできるように気を付けるべきではありません。また、あなたのアドバイスを受けて、JavaScriptを使って、オフラインでアクセスしてログアウトしたときにアプリの「期限切れの」部分を消去しています。 –

+0

あなたは私の答えが役立つことを嬉しく思いました! – japrescott

1

どうかのユーザーがログアウトするか、彼らにはログインしていない唯一のネットワークでマニフェストを取得する:*

+0

このアプローチで唯一の問題は、ユーザーがログインするたびにマニフェスト全体を再ダウンロードする必要があることでした。しかし、それは必要です。提案していただきありがとうございます! (私に答えると答えを受け入れる) –

+0

。 Chromeは、ログインした状態とログアウトした状態の間でマニフェストが変更されたときにエラーを発する。 'アプリケーションキャッシュエラーイベント:更新中のマニフェストの変更、再試行のスケジューリング ' –

2

HTML5アプリケーションキャッシュに別の方法でアプローチする必要があります。サーバー側で動的に生成されたページ、特にログインが必要なページをキャッシュするのには役に立ちません。アプリケーションキャッシュにはログインの概念がありませんし、別の/ログインしていない誰かからのページを保護することもありません。

すべてのHTML/CSS/JavaScriptが静的でアプリケーションキャッシュに登録されているAJAXベースのサイトでは、はるかに適しています。代わりにAJAX経由でデータを取得してからページを生成します。オフラインで使用するためにアプリケーションにデータをキャッシュする必要がある場合は、データ用にローカルストレージ/セッションストレージやIndexedDBなどのオフラインデータストレージメカニズムのいずれかを使用します。

オフラインでアクセスできないサーバーに電話をかけずにログインを検証する方法がないため、オフラインでキャッシュするデータの量を自分で判断できます。

+0

これは私が今取ることにしたアプローチです。すべての "ログインに敏感な"マテリアルは、Ajax経由で取得されます。これらの要求は、ユーザーがログインしていないときには自然に失敗します。さらに、マニフェストでキャッシュできないとマークすることで、問題は発生しません。 –

+0

HTML5アプリケーションキャッシュに問題がある場合は、伝統的に構築されたサーバー生成のWebサイトにそのまま結合することはできません。これは、人が厄介な更新メカニズムよりもさらに混乱させるようです。 – Stoive

関連する問題