私のメイン ページには大きなサイズの画像 (~6 MB) があります。マップの一種です。
ブラウザを閉じたり、PCを再起動したりしても、その画像をユーザーのブラウザに保存したいのですが、どうにかできますか? 重要な場合は、その画像が CSS ファイルで使用されます。
私のホスティングは帯域幅が狭いため、ユーザーのブラウザにできるだけ長くその画像を保存したいと思います。ヒントをありがとう.
5 に答える
これにはいくつかのオプションがあり、いくつかは他よりも複雑です。
最もクロスブラウザな方法は、キャッシュ ヘッダーを long cache timesに設定し、URL の一貫性を保つことです (@Petah の提案と同様)。
一部のブラウザは、 HTML5 ファイル APIをサポートしています。サポートされている場合は、JavaScript を使用してここに画像を保存できます。
HTML5 AppCacheを使用することもできますが(これもサポートが制限されています)、アプリケーションの構造に注意する必要があります。これは、キャッシュ マニフェストが変更されるまで HTML ページが永久にキャッシュされるためです。
また、画像をデータ URL としてシリアル化し(かなり十分にサポートされています)、その文字列をローカルに保存することもできます(localstorage、cookie)。ページの読み込みに永遠に時間がかかるため、これはおそらく優れたオプションではありません。
帯域幅が心配な場合は、画像をいくつかの画像サービス(インターネット上に多数あります)にアップロードし、そのURLをCSSに含めてみませんか?
これらの(無料の)サービスには、注意が必要ないくつかの懸念事項があります。
- 一部の画像ホスティングサービスは、スタイルシートやフォーラムの投稿などの他のサイトに含まれている場合、画像のレンダリングをブロックします(通常は「許可されていません...」というテキストの画像を使用します)。それ
- 無料のサービスの場合、画像の読み込み時間は大幅に異なる可能性があります。これは、クライアントのブラウザに読み込まれるとキャッシュされるため、大したことではありません。
- サービスが一時的に利用できなくなり、お客様にご迷惑をおかけする場合があります
キャッシュのベスト プラクティスを調べる必要があります。
その画像に正しい HTTP キャッシュ ヘッダーを設定する必要があります。それらを使用して、ブラウザー (およびその間のすべてのプロキシー) に、その画像をできるだけ長く保持するように指示します。しかし、それはユーザーがそのイメージを持っていると、彼がそれを永遠に持つことを保証するものではありません. さまざまな理由でキャッシュから削除される可能性があります (ユーザーがキャッシュをクリアした、ブラウザーが削除したなど)。
このグーグル検索から始めてください。より具体的な情報が必要な場合は、使用している Web サーバーをお知らせください。