キャッシュのスタイル変更を保存します。 keshuvannyaのベストプラクティス。 .htaccessの代替キャッシュ方法

ゴロフナ / グーグルプレイ

ページをキャッシュするためにブラウザをブロックする必要がある場合があります。ページ上の情報の断片はすぐに更新されます。 新しい方法で作成されるフィルターやその他のコンテンツを選択してデータを生成することもできます。 一言で言えば、側で現金化するためにプログラムをブロックする必要がある瞬間があります。 今日、私たちは実装する方法を知っています 違う方法、h PHPを助ける HTMLまたは.htaccessのいずれか。

HTMLのキャッシュフェンス

あなたはメタタグの助けのためにそれをすることができます。 一度に、キャッシュのフェンスのさまざまなオプションを分析します。

ブラウザとプロキシサーバーによるキャッシュのフェンス

フェンスキャッシュstorіnki、ブラウザ未満

にキャッシュをインストールする 予約時間ブラウザ用

以下のコードを支援するために、キャッシュからドキュメントを保存する方法をブラウザに指示できます。 その後、キャッシュが更新されます。

プロキシサーバーの過去1時間のキャッシュの設定

転送コードと同じである可能性がありますが、プロキシサーバーのコストのみです。

ヘルプPHPのためにキャッシュアウトするのをやめます

実際には、HTMLに表示されるものと同じものはすべて、ヘッダーヘッダーを介してのみ情報を表示します。 キャッシュに絶対柵を実装する方法を軸にします。

"、date(" H:i:s ")、""; ?>

歌う時間にケシュヴァティを許可することも可能です。 たとえば、1年未満の現金化は許可されています。

"、date(" H:i:s ")、""; ?>

助けのために側からお金を節約してください。 htaccess

アイデアの実装を容易にするために、すべてを同じ構成で実行できます Apacheサーバー。 この前に、必要なモジュールがワークベンチにあるかどうかを再検討する必要があります。 Vіdkrivаєmokonfіgurаtsіy Apacheファイルそして、私は写真に来るのではないかと心配しています。

LoadModule Expires_module modules / mod_expires.so LoadModule headers_module modules / mod_headers.so ... AddModule mod_expires.c AddModule mod_headers.c

これで、キャッシュされたデータから保護されている.htaccessファイルが作成されました。 ご覧のとおり、.htaccessファイルは、それが属するディレクトリとすべてのサブディレクトリに展開されます。

#Cache-Controlヘッダー ヘッダー追加Cache-Control"no-store、no-cache、must-revalidate"#ヘッダーの有効期限が切れます ExpiresActive On ExpiresDefault "now"

キャッシュフローフェンスがサーバーへの関心を押し上げていることを尊重することが重要です。 トム、ジムに注意してください! また、ドキュメントを保存できるソングアワーを設定することをお勧めします。 たとえば、1年間のキャッシュを設定しましょう。

#Cache-Controlヘッダー ヘッダー追加Cache-Control"public"#ヘッダーの有効期限が切れます ExpiresActive OnExpiresDefault"アクセスプラス1時間"

ヴィスノヴォク

サイトに変更を加えるときは、サイドの代わりにcssファイルとスクリプト(.js)がブラウザーによってキャッシュされ、長期間それを行うことができないため、私たちはしばしばそれに固執します。 加えられた変更がすべてのブラウザに表示されるようにするには、クライアントをF5またはCtrl+F5の折りたたみの組み合わせに慣れさせる必要があります。 悪臭が急いでいるように、stezhityの時間のІ時間。

仕上げのプロセスは退屈で不便です。 ファイルの名前を変更することで簡単に状況から抜け出すことができますが、私はそれを再び行うことはできません。

ただし、名前が多すぎる場合は超過を許可し、必要に応じてその時点でcache.cssまたは.jsファイルを削除する方法があります。 Ctrl+F5を永遠に忘れてください。

肝心なのは、最後に.cssファイルまたは.jsファイルに疑似パラメーターを割り当てて、時間を時間に変更すると同時に、ブラウザーからキャッシュをクリアすることです。

この順序で、終了コードのエントリは次のようになります。

De 186485-かなりの組み合わせなので、同じファイルを見ることができますが、ブラウザはそれを新しいzavdyaki疑似パラメータとして解釈します ?186485

ここで、パラメーターのすべての入力を変更しないように、必要なすべてのものに接続されているphpファイルにパラメーターを配置します。

">

param.phpファイルでは、次のものが必要になる場合があります。

準備! 今ファイルを変更するとき param.phpキャッシュファイルは削除されます。

Joomlaはどうですか?

ここで、小売業者はすでに私たちのためにすべてを考えているので、受け入れられている構文に従う必要があります。

JHtml :: _( "stylesheet"、 "template.css"、array( "version" => "auto"、 "relative" => true)); JHtml :: _( "script"、 "template.js"、array( "version" => "auto"、 "relative" => true));

テンプレートフォルダからcssファイルtemplate.css(または3つのスクリプトを含むファイルの場合はtemplate.js)を含めるための割り当てコード。 "version" => "auto"置換は、値であるかどうかを設定できます。たとえば、 "version" => "1.1"-出力では、このパラメーターは、ファイルを接続するときに電源記号の後に使用する必要があります。

相対=>trueパラメータは、システムがテンプレートフォルダの参照ファイルを認識できる必要があることを意味します。 または、relative => falseの場合、.cssまたは.jsファイルへのパスを指定する必要があります

一部の人々は、CSSファイルがプロモートされ、リンクまたは@importを介して接続されていると考えています-キャッシュしないでください。 あなたを失望させる印象。 css自体はokremiumファイルにキャッシュされます。さらに、それはより良いことです。 この情報は、6以上のブラウザおよびその他のブラウザで確実に検証されています。 バガトコハナはそのようなファイルに現金化されていますzovsіmの野生のswidkіstyu、右側のqiuのotrimuє1位。 そういえば、Operaのメカニズムそのものが同様のブラウザで流暢に話せるものがたくさんあります。 しかし、Operaの非常に「スーパー」なキャッシュは、AJAXテクノロジーの混乱の地獄であることは間違いありません。 その時、チキバンチを変更するためのvikoristanny AJAXの場合のように、Operaは古くなります。 エールツェソングokremoїそれら。

CSSキャッシュ

エール! tsomuのdeyakih悲悼問題で直接Buvayut。 原則として、Apacheサーバーのセットアップが間違っていると、正しいヘッダーが認識されません。 そして、ヘッダーの助けを借りて、ファイルをキャッシュすることができます。 zamovchuvannyamの場合、明らかに、インクルージョンのキャッシュ。 ファイルをキャッシュする必要がない場合は、Aletraplyayutsyavpadki。 すでにプロがタンバリンを使って踊り始め、HTTPヘッダーを駆動している人のために。 ただし、この記事をもう一度読んでいる場合は、HTTPヘッダーをエスケープすることからまだ遠い道のりです。 私はあなたに歌います、次の1時間であなたはそのような仕事にとどまらないでしょう。 それでも、まるであなたが魂の奥底まで泣いているかのように、私たちはあなたがそれをどのように見るかを簡単に説明します。

  1. HTTPヘッダーをWEBサーバーに送信します。たとえば、chuesh、licoriceめて、CSSファイルを渡してください。それ以外の場合はCSSを使用していますが、残りの時間は変更してください。
  2. そして、サーバーは申し訳ありませんが、とても塩辛いので、その時点では毎年の変更はありませんでした。それを取り入れて、古いCSSを大胆に使用してください。
  3. CSSが変更された場合、ブラウザはキャッシュ内のCSSを愚かに更新します。

そして今、疲れ果てていなくても、ある種の実験の形で科学的なゴミの塊。

WEBで初心者に一番下のテキストを言います、それは弱く理解されるでしょう。 主に、含まれているキャッシュが含まれているためにまだスタックしている私たちにとっては問題ありません。

すべての実験は、実際の有料のもので実行されました。 優れたホスティング業者。HTTPヘッダーを壊すことに悩まされることなく、HTTPヘッダーの構造を変更できます:)

ブラウザモード

お父さん、ブラウザはありますか 2つのモード:

1. ロックモード見出しを回転するには:

キャッシュ制御:no-store、no-cache、must-revalidate、post-check = 0、pre-check = 0

2. モードはキャッシュを有効にします見出しを回転するには:

キャッシュ制御:プライベート、最大年齢= 10800、事前チェック= 10800

次に、ブラウザの動作について説明します

FireFox3.5以降

初めモードは正しくキャッシュされませんが、JavaScriptファイルはチェックされないため、primusはページを更新しません。 CSSはヘッダーで書き直されます。

If-Modified-Since:"現在の日付"GMT If-None-Match:"独自のハッシュコード"

CSSは、実際に更新された直後に再考されています。

別にモードはサイドの変更を停止します。 そのため、側面に表示されているデータベースの内容を変更しました。表示されていないので、primus-primusの内容をリクエストで修正された内容に変更する必要があります。

GET / HTTP / 1.1ホスト:xxx.com If-Modified-Since:現在のGMT日付

そして考慮に入れてください:

HTTP /1.1304は変更されていません

Internet Explorer 8(IE8)

初め Internet Explorerモードでは、If-Modified-Since&If-None-Matchが有効になり、JavaScriptおよびCSSでは、JavaScriptとCSSが本当に悪臭を放つという理由だけで無効になります。 それらの同じyakschoprimusovoは側を変えます。

別に Internet Explorerモードは、JavaScriptおよびcssのIf-Modified-SinceおよびIf-None-Matchもオーバーライドします。 ただし、ナビゲートすることを選択した場合、ページ自体を開始/更新することは役に立ちません。そのため、ナビゲーションは入力を強制しません。したがって、js / cssは更新され、ページのテンプレートとコンテンツは更新されません。 コンテンツを更新する場合、primusの更新側を持ってくることは役に立ちません。

Opera10以前

初め Operaモード、最初のモードでは、設定で[画像の確認]オプションが設定されているという事実に保存されるjsとCSSの更新。 オプションがAlwaysに設定されている場合、オペレーターはIf-Modified-SinceおよびIf-None-Matchをオーバーライドして、js&cssの更新を再検証します。 たとえば、値が5年に設定されている場合は、5年ごと、またはサイドのプライマス更新を再検討する必要があります。

別にモードでは、OperaはjsとCSSの更新をオーバーライドせず(GETリクエストを奪わない)、サイド自体でGETリクエストを奪わないため、jsとcssの更新を取得せず、コンテンツの更新を気にしません、他のブラウザと同じように。 そして、オペラ座のprimusovimnovlennyamの軸はもっと美しいです。 IEとFFのビューでは、OperaはIf-Modified-SinceとIf-None-Matchのない側を明示的に表示します。 primus updateを使用する場合は、jsとcssの更新を要求します。If-Modified-SinceとIf-None-Matchと同じように実行します。

ヴィスノフキ

  1. Keshuvannyaは、さまざまなブラウザでどのように機能し、どのように継承されるかを明確に示していません。これを伝えるのは安全ではありません。
  2. キャッシュバックは、サイドがめったに更新されない場合にのみオンにできます(したがって、リアルタイムで更新されるため、サイトにページはありません)
  3. 私の意見では、FireFoxはIEよりも少しスマートに動作するため、キャッシュが有効になっている場合、JavaScriptが更新されることはめったにありませんが、論理的に見えるJavaScriptの定期的な更新を上書きしません。
  4. Operaでは、画像の更新、JavaScript、CSSを微調整して、Check画像をさらにカスタマイズできます。これはプラスです。 したがって、Opera自体はキャッシュとprimusの更新が含まれているため、IE&FFよりも動作が優れているので、Operaはサイドではなく何らかの方法で更新され、IE&FFはあなたに幸せな未知のものを奪います。

あなたとブートサイトに頑張ってください。

  • htaccessキャッシュは、正しい場合はローカルコンピューターにWebサイトを保存します。
  • ブラウザのVykoristannyaキャッシュ-ウェブマスターはブラウザにリソースの確認方法を指示します。

ブラウザにWebページが表示される場合は、ロゴ、CSSファイル、およびその他のリソースに問題があります。

ブラウザはすでにリソースを利用しているため、ブラウザのキャッシュはリソースを記憶します。 サイトの反対側に行くと、ロゴ、CSSファイルなど。 ブラウザがすでにそれらを忘れている(保存している)ので、最初からやり直すのはあなたのせいではありません。 Webサイトへの最初のアクセスの最初の1時間は、1時間以上かかり、繰り返しアクセスする場合はそれよりも短くなる理由は何ですか。

キャッシュを獲得すると、Webサイトのファイルがブラウザのキャッシュに保存されます。 vіdvіduvannyahを繰り返すと、側面は異なる速度でzavantazhuvatsyaになります。 それはまた、vikoristovuyutの少ないリソースのように、他の側面にもなります。

ブラウザでキャッシュを無効にする方法

  • キャッシュを獲得するために、リソースの要求のヘッダーを変更します。
  • キャッシング戦略を最適化します。

リクエストの見出しを変更する

ほとんどの人にとって、htaccessサイトをキャッシュする唯一の方法は、Webサーバー上の.htaccessファイルにコードを追加することです。

.htaccessファイルは、Webサイトの多くの重要なパラメータを制御します。

.htaccessファイルによるブラウザキャッシュ

コードの下を指すと、ブラウザに何をキャッシュするか、そしてそれを長期間記憶する方法がわかります。 Yogoスレッドは、穂軸を.htaccessファイルに追加します。

##キャッシュの有効期限が切れます## ExpiresActive On ExpiresByType image / jpg "access 1 year" ExpiresByType image / jpg "access 1 year" ExpiresByType image / gif "access 1 year" ExpiresByType image / png "access 1 year" ExpiresByType text / css "access 1 month" Expires html "アクセス1か月"ExpiresByTypeアプリケーション/pdf"アクセス1か月"ExpiresByTypetext /x-javascript"アクセス1か月"ExpiresByTypeアプリケーション/x-shockwave-flash"アクセス1か月"ExpiresByType画像/x-icon"アクセス1年"ExpiresDefault"アクセス1ヶ月」##キャッシュの有効期限が切れます##

.htaccessファイルを保存し、Webページを更新します。

さまざまなファイルタイプのキャッシュ時間を設定する方法

ホバーされたコードには1時間間隔が設定されています。 たとえば、1rіk(1rіk)または1か月(1か月)。 悪臭はファイルタイプに関連付けられています。 ガイダンスが高く、コードがインストールされているため、.jpgファイル(画像)を長期間キャッシュする必要があります。

Yakbyは、JPG画像が1か月間キャッシュされるという事実を変更したいと考えていました。その後、「1川」を「1か月」に置き換えただけです。 htaccessを介してより高いキャッシュ値を指定することは、ほとんどのWebサイトに最適です。

.htaccessの代替キャッシュ方法

メソッドの詳細な説明は「 有効期限「Vinは、より多くの新規参入者を獲得するのに役立ちます。 キャッシュを処理する方が簡単なので、より多くのオプションを提供する別のCache-Controlキャッシング方法を試すことができます。

Expiresメソッドがサーバーで機能しない可能性があります。その場合は、Cache-Controlを微調整してみてください。

キャッシュ制御

この方法では、ブラウザでのページのキャッシュをより細かく制御できますが、すべての設定を一度に書き込む方が簡単であることを誰かが知っている方がよいでしょう。

.htaccessファイルのバリエーションの例:

ほとんどの静的資産で1か月 ヘッダーセットCache-Control"max-age= 2592000、public"

ホバーコードは、ファイルタイプに適切にCache-Controlヘッダーを設定します。

Cache-Controlの使用方法

htaccessブラウザのキャッシュコードの行を見てみましょう。

ほとんどの静的資産で1か月

この行は単なるメモです。 .htaccessファイルは、#記号で始まる行を無視します。 ファイルをキャッシュするためのソリューションとして、いくつかの異なるデータセットを使用できるため、このメモをお勧めします。

推測の列があります、それは、scho、 ファイルがこれらのタイプのいずれかである場合は、それを処理します。»

この行で最も重要なのは、さまざまなタイプのファイルの新しい改修にあるものです( css, JS, JPEG, PNGや。。など。 )およびこれらのファイルタイプにロードする必要のあるキャッシュ命令。 たとえば、JPGファイルが一定期間キャッシュされていないと思われる場合は、「 JPG「。 HTMLを追加する場合は、この行に「 HTML«:

ヘッダーセットCache-Control"max-age= 2592000、public"

割り当てられた行には、実際の見出しと意味があります。

  • 部 " ヘッダーセットCache-Control»-タイトルを挿入します。
  • ズミンナ」 max-age = 2592000»-キャッシュアウトプロセスにかかる時間を(秒単位で)表示します。 この期間では、1か月(2592000)秒間現金化することができます。
  • 部 " 公衆»すぐに利用できるものについて教えてください。

htaccessを介したこのキャッシュ行は、オペレーターを閉じてコードブロックを終了します。

キャッシャーの燃焼問題

画像のリストを作成するとき、それらはますます現金化されるので、あなたがあなたの側に変更を加えるとき、悪臭はすべてのcoristuvachasに見えないかもしれないことを覚えておいてください。 Oscilki koristuvachiは、重要なファイルではなく、キャッシュインしているファイルに戻ります。 これは定期的に編集するファイルです( 例-CSSファイル)、追加のデジタルビットコインURLのキャッシュの問題を修正できます。

デジタルビットコインのURL

一意の名前が存在する場合、キャッシュできない新しいファイルリソースを削除できます。 たとえば、CSSファイルの名前が「main.css」の場合、「main_1.css」という名前を付けることができます。 次回、名前を変更すると、ファイルに「main_2.css」という名前を付けることができます。 これは、定期的に変更されるファイルに適しています。

キャッシングが正しく行われると、生産性が大幅に向上し、トラフィックが節約され、サーバーのコストが変更されます。キャッシングの豊富なサイトのソフトウェアがそれほど遠くない場所に実装され、レースキャンプが作成されます。相互リソースの同期。

さらに重要なのは、次の2つのパターンのいずれかにキャッシュインするためのベストプラクティスです。

パターン#1:固定コンテンツと長期最大年齢キャッシュ

キャッシュ制御:max-age = 31536000
  • URLによるVmistは変更されないので…
  • ブラウザまたはCDNは、川のリソースを簡単にキャッシュできます
  • 最大年齢のタスクに対して若いキャッシュされたコンテンツは、サーバーに相談せずにハッキングされる可能性があります

ストーリンカ : ゲイ、「/ script-v1.js」、「/ styles-v1.css」、「/cats-v1.jpg」が必要です10:24

現金 : 私は空っぽです、お元気ですか、サーバー? 10:24

サーバ : OK、軸臭い。 スピーチまで、ケシュ、їхvartovikoristatiはもう岩を伸ばしていません。 10:25

現金 : THX! 10:25

ストーリンカ : やったー! 10:25

翌日

ストーリンカ : ゲイ、私はあなたが必要です "/ script- v2.js "、" / styles- v2.css」および「/cats-v1.jpg」08:14

現金 : 猫と一緒の絵は、あなたはそれを解決することはできません。 サーバ? 08:14

サーバ : 簡単-新しいCSSとJSの軸。 繰り返しになりますが、Kesh:付帯設備の期間は運命にすぎません。 08:15

現金 : 素晴らしい! 08:15

ストーリンカ : ありがとうございました! 08:15

現金 : うーん、「/script-v1.js」と「/styles-v1.css」を長い間コピーしていませんでした。 それらを見る時が来ました。 12:32

むち打ちパターン。曲のURLの内容を変更することはなく、URL自体を変更します。

スキンURLには、コンテンツから同時に変更する機能があります。 バージョン番号、変更日、またはハッシュコンテンツのいずれかを使用できます(ブログではこのオプションを選択しました)。

ほとんどのサーバー側フレームワークには、同様の音声を簡単に使用できるツールがあります(Djangoには奇抜なマニフェスト静的ファイルストレージがあります)。 Node.jsには、gulp-revなど、独自のタスクを修正する小さなライブラリもいくつかあります。

ただし、このパターンは、記事やブログ投稿などのスピーチには適していません。 URLをバージョン管理することはできませんが、代わりに変更することができます。 真剣に、私はしばしば文法と句読点の恩赦を持っています、それは一緒にスウェーデン語の更新の能力を必要とします。

パターン#2:変更されたコンテンツはサーバーで再検証する必要があります

キャッシュ制御:キャッシュなし
  • VmіstURLの変更、今後…
  • ローカルにキャッシュされたバージョンであるかどうかにかかわらず、サーバーログインなしでは打ち負かすことはできません。

ストーリンカ : ゲイ、「/about/」と「/sw.js」が必要です11:32

現金 : 私が助けることは何もありません。 サーバ? 11:32

サーバ : はいはい。 ケシュ、彼らをあなたと一緒に保ちなさい、しかし勝利の前で私を養ってください。 11:33

現金 : かしこまりました! 11:33

ストーリンカ : THX! 11:33

次の日のために

ストーリンカ : ゲイ、「/about/」と「/sw.js」の必要性を更新します09:46

現金 : Khvilinka。 サーバー、私のコピーですべてが大丈夫ですか? 「/about/」のコピーは月曜日のもので、「/sw.js」は昨日のものです。 09:46

サーバ : 「/sw.js」は変更されませんでした...09:47

現金 : 涼しい。 Storinka、「/sw.js」をトリミングします。 09:47

サーバ : ...しかし"/about/"私は新しいバージョンを持っています。 Kesh、trimayїї、ale yak、そして前回は、私と一緒に寝ることを忘れないでください。 09:47

現金 : 賢明です! 09:47

ストーリンカ : 奇跡! 09:47

注:no-cacheは、「キャッシュしない」という意味ではなく、サーバーからキャッシュされたリソースを「検証」(または再検証)することを意味します。 キャッシュアウトする代わりに、ブラウザをno-storeで罰します。 また、再検証する必要があるということは、obov'yazkovuの再検証を意味するわけではありませんが、リソースをキャッシュしたものは、若くて最大年齢の低いタスクと同じくらい若く、別のタイプの再検証でのみ勝ちます。 軸は、すべてがキャッシュのキーワードで起動されるようにするためです。

このパターンでは、ETag(選択したバージョンID)またはLast-Modifiedヘッダーを出力に追加できます。 攻撃されると、クライアント側の代わりにIf-None-MatchまたはIf-Modified-Sinceが表示され、サーバーが「あなたが持っているものを勝利し、キャッシュは最新です」と言ってHTTP304を有効にします。

ETag / Last-Modifiedは十分な強度ではありませんが、サーバーを再度強制する必要があります。

このパターンは、最初のパターンのように、単なる飲み物なしで省くことができるようなガルニではないという点で、常に測定の点でvimageです。

最初のパターンに十分なインフラストラクチャがない場合は珍しくありませんが、パターン2のリソースの問題を修正することもできます。その結果、中間バージョンが優先されます。つまり、最大年齢が短く、コンテンツが変更されます。 不潔な妥協。

変更されるコンテンツの最大年齢リストは通常​​、間違った選択です

残念ながら、拡張機能があるため、お尻としてGithubページにアクセスできます。

見せる:

  • /論文/
  • /styles.css
  • /script.js

Іzサーバーヘッダー:

キャッシュ制御:再検証する必要があり、max-age = 600

  • VmіstURLの変更
  • ブラウザでは、新しいバージョンが10分間キャッシュされますが、サーバーに相談しないと勝ちません。
  • そのようなキャッシュがないため、可能であれば、If-Modified-SinceまたはIf-None-Matchを使用してキャッシュを最小限に取得できます。

ストーリンカ : ゲイ、「/ article /」、「/ script.js」、「/styles.css」が必要です10:21

現金 : 私はあなたのように何も持っていません、サーバー? 10:21

サーバ : 問題ありません、悪臭を放ちます。 しかし、覚えておいてください、ケシュ:あなたは一気に最も近い10の鞭を打ち負かすことができます。 10:22

現金 : Є! 10:22

ストーリンカ : THX! 10:22

ストーリンカ : ゲイ、もう一度「/article/」、「/script.js」、「/styles.css」が必要です10:28

現金 : おっと、入力していますが、「/ styles.css」と入力しました。それ以外の場合は、トリムします。 サーバー、「/ styles.css」を送ってもらえますか? 10:28

サーバ : 簡単です。あたかも少し前にヨガをしたかのように、その時からすでに変わっています。 Nayblizhchi10hvilinあなたは大胆にヨガに勝つことができます。 10:29

現金 : 問題ない。 10:29

ストーリンカ : ありがとうございました! エール、何だと思う、それはうまくいかなかった! すべてが壊れた! どうしたの? 10:29

このパターンは、テストされている間生きる権利を持っているかもしれませんが、実際のプロジェクトが理解するのは非常に簡単です。 アプリケーションでは、サーバーはHTML、CSS、およびJSを更新しましたが、CSSの更新がサーバーから追加されるまで、キャッシュからの古いHTMLとJSの側に追加されています。 バージョンの配布はすべて疑似です。

多くの場合、HTMLに大幅な変更を加える場合は、新しい構造を正しく表示するためにCSSを変更し、コンテンツやスタイルに影響を与えないようにJavaScriptを変更します。 すべてのリソースは独立していますが、キャッシュの見出しは使いやすいものではありません。 その結果、オリジナルには古いバージョンの1つまたは2つのリソースと、古いバージョンの他のリソースが含まれている可能性があります。

max-ageは1時間ごとに設定されるため、すべてのリソースが同じアドレスの一部として転送され、用語が一度に分割され、同期の可能性がわずかにあります。 JavaScriptやその他のスタイルを含まないページがある限り、キャッシュの適用条件は同期しません。 さらに悪いことに、HTML、CSS、およびJSが相互に依存していることを知らずに、ブラウザーは常にキャッシュに移動しているため、リストの1つを楽しんで、他のすべてを忘れることができます。 Vrahovyuchiは一度にすべての要素を考慮し、一致しないバージョンが出現する可能性が高いことを理解していることになります。

koristuvachの場合、結果として側面のレイアウトにひびが入り、その他の問題が発生する可能性があります。 マイナーな不具合から無関係なコンテンツまで。

善のために、koristuvachiは暇な休暇をとることがあります。

反対側の側を更新する

サイドは更新パスで占められているため、ブラウザはmax-ageを無視して、常にサーバーの再検証を実行する必要があります。 それに対して、最大年齢の後にkoristuvachが間違っていたので、サイドの簡単な更新ですべてを修正できます。 エール、ズロズミロ、その後、スプーンが見つかると、包囲はすべて失われ、サイトへのインストールは異なります。

Service Workerは、これらのバグの存続期間を継続できます

たとえば、次のサービスワーカーがいます。

constversion = "2"; self.addEventListener( "install"、event =>(event.waitUntil(caches.open( `static-$(version)`))then(cache => cache.addAll(["/styles.css"、 "/ script .js "]))));)); self.addEventListener( "activate"、event =>(//…古いキャッシュを削除…)); self.addEventListener( "fetch"、event =>(event.respondWith(caches.match(event.request).then(response => response || fetch(event.request)));));

カイサービスワーカー:

  • キャッシュスクリプトとスタイル
  • zbіgu、іnakshezbіtаєєがマージするときに現金を獲得する

CSS / JSを変更すると、更新を開始するバージョン番号も変更されます。 ただし、addAllのシャードはキャッシュに戻っているため、max-ageや間違ったバージョンのCSSとJSを介して競合が発生する可能性があります。

悪臭はキャッシュされているため、今後のService Workerの更新前にCSSとJSが狂ってしまいます。また、レースが更新されたときに再び使用することはできません。

ServiceWorkerのキャッシュをスキップできます。

Self.addEventListener( "install"、event =>(event.waitUntil(caches.open( `static-$(version)`))then(cache => cache.addAll([new Request( "/ styles.css"、 (キャッシュ: "no-cache"))、新しいリクエスト( "/script.js"、(キャッシュ: "no-cache"))))))));));

残念ながら、キャッシュのオプションはChrome / Operaではサポートされておらず、Firefoxにのみ追加されていますが、自分で行うことができます。

Self.addEventListener( "install"、event =>(event.waitUntil(caches.open( `static-$(version)`))then(cache => Promise.all(["/styles.css"、 "/ script .js "] .map(url =>(//ランダムクエリ文字列を使用したキャッシュバストreturn fetch(` $(url)?$(Math.random()) `).then(response =>(//失敗404、500などでif(!response.ok)throw Error( "Not ok"); return cache.put(url、response);

このアプリケーションでは、追加の数のキャッシュを破棄するか、さらに5つ追加して、1時間のストレージのコンテンツにハッシュを追加できます(sw-precacheを奪う人と同様です)。 これは、JavaScriptを利用するための最初のパターンの一種の実装ですが、ブラウザーやCDNではなく、ServiceWorkerでのみ機能します。

サービスワーカーとHTTPキャッシュは奇跡的に連携し、遠慮なく戦います。

バカイトのように、サービスワーカーに恩赦を与えることを回避するか、より正確には、問題の根本を見つけることができます。 キャッシュを正しく構成すると、ワーカーのロボットが簡単になるだけでなく、ブラウザーがサービスワーカー(Safari、IE / Edge)をサポートしないようになり、CDNを最大限に活用できるようになります。

正しいキャッシュヘッダーは、ServiceWorkerの更新を大幅に高速化できます。

constversion = "23"; self.addEventListener( "install"、event =>(event.waitUntil(caches.open( `static-$(version)`))then(cache => cache.addAll(["/"、 "/ script-f93bca2c) .js "、" /styles-a837cb1e.css "、" /cats-0e9a2ef4.jpg "]))); ));

ここでは、ルートページをパターンNo. 2(サーバーの再検証)でキャッシュし、他のすべてのリソースをパターンNo. 1(不変のコンテンツ)でキャッシュしました。 Service Workerスキンの更新はルート側に求められ、URLが変更されるため、リソースの書き換えが引き継がれる可能性は低くなります。 以前のバージョンからアップグレードする場合でも、古いバージョンからアップグレードする場合でも、トラフィックを節約し、生産性を向上させます。

ここで、バイナリバイナリが小さな変更で起動されると考えられる場合、または2つのファイルの複雑なペアリングが発生する場合、ネイティブ実装に比べて大きな利点があります。 ですから、私たちは同じように小さな関心を持って素晴らしいウェブプログラムをアップグレードすることができます。

サービスワーカーは警察官としてではなく警察官として働く可能性が高いため、彼と戦うためにキャッシュの代わりにキャッシュを使用してください。

最大年齢と変化するコンテンツを注意深く選択することで、さらに良くなる可能性があります

max-ageは、変更されるコンテンツに対して間違った選択であることがよくありますが、気にしないでください。 たとえば、元の統計の最大年齢は3つのクイルになります。 同じキャッシングパターン(CSS、JS、画像ウィッキングパターン#1-一定のコンテンツ)が利用できる側に休閑地がないため、レースキャンプは問題ではありません。他のすべては振動しません。

このパターンは、人気のある記事を落ち着いて書いていることを意味し、CDN(Cloudflare)はサーバーからトラフィックを受け取ることができるので、明らかに、3つのグッズを送信する準備をしています。更新された記事のドックは、芯。

このパターンは狂信なしに勝利するはずです。 制定法に新しい部門を追加し、他の制定法のために新しい部門を追加したかのように、私は誤謬を作成しました。 Koristuvachはメッセージを押して、分割せずに記事のコピーをとることができます。 これを削除したい場合は、記事を更新し、Cloudflare記事のキャッシュバージョンを削除し、3つのクレジットを追加して、別の記事にさらにパワーを追加することができます。 したがって、このパターンには注意が必要です。

キャッシュを正しく選択すると、生産性が大幅に低下し、トラフィックが節約されます。 不変のコンテンツを渡すと、URLを簡単に変更したり、サーバー側の再検証にタグを付けたりできます。 max-ageを変更し、コンテンツを変更します。これにより、コンテンツが古すぎないことを容赦し、確信できるようになり、同期がとれなくなる可能性があります。

©2022androidas.ru-Androidのすべて