Google Page Speed Insights を使用して、重要なスクロールせずに見えるコンテンツを最初に読み込むようにHTMLを構成すると、ページのパフォーマンスが向上することに気付きました(そして、現在のパフォーマンスで) 。モバイル71/100-Pc 87/100)。
私の質問は、Apacheのmod_headerがアクティブになっており、<head>
タグ内にコンテンツがない場合、ページの任意の部分(たとえば、本文内)にData Expiresを設定することは可能ですか?
Expiresヘッダーはページのフラグメントではなく、ページに関連しています。
基本について説明します。
HTMLをブラウザに送信します。そのすべてまたはストリームは、例にとって重要ではありません。
ブラウザはそれを受け取り、解析を開始します。同時に、解析を開始すると、画像、CSS、JSなど、他のすべてのリンクファイルが呼び出されます。いくつかの並列接続が確立され、リンクファイルの一部が開始されます。ブラウザはそれらを検出し、適切なパーサー/レンダラーを割り当ててファイルを操作します。
ファイルが画像の場合、画面に表示されます。 CSSの場合、パーサーは受信したHTMLにルールの適用を開始し、コンテンツの表示を表示/変更します。スクリプトの場合、トリガーを探して読み取ります。トリガーがない場合、ファイルはメモリ上にとどまり、トリガーがある場合、呼び出されたアクション/関数は動作を開始します。
スクロールせずに見えるのは、画面上で最初に表示されるコンテンツを指す用語で、新聞からのものです。
CSSとJSは、スクロールせずに見える範囲ではなく、非同期またはコンテンツのレンダリングと並行しています。 CSSはドキュメント全体に影響を与え、JSはプログラミングされたものに影響を与えます。
やりたいことがCSSファイルとJSファイルのキャッシュを制御する場合は、.htaccessでルールを使用できます。
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=31536000, public, s-maxage=31536000"
Header set Pragma "cache"
</FilesMatch>
またはこのように
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
</IfModule>
そのコンテンツ(HTMLファイル)がiframeとして挿入されない限り、ページのコンテンツの一部に影響を与えることはできません。その状況では、まだ別のファイルに影響を与えていますが、最終ページでは、一部のみがキャッシュルールの影響を受けているように見える場合があります。