問題
- ロード時間と、resolved_modules をキャッシュすることによってサーバーから要求されるデータの量を削減する必要があります。
Environment
- DXP-8を搭載したLiferay 7.2
解決策
-
修正プログラムが提供されており、以下にその動作の説明を示します
-
-
ホットフィックスはどのブラウザーにも依存しません。 この修正により、ブラウザーは resolve_modules 応答をキャッシュできるようになります。
-
たとえば、Firefox と Chrome
の 2 つのブラウザーがあるとします。 Firefoxの場合、要求ヘッダーには Cache-Control: max-age:0が含まれます。これにより、指定されたリソースがサーバー上で変更されているかどうかをブラウザーに強制的に尋ねます。か否か。 GET および HEAD メソッドの条件が失敗した (リソースが変更されていない) 場合、サーバーは HTTP ステータス コード 304 (未変更) を返す必要があります。 この後、リソースはキャッシュから提供されます。Chrome では、ヘッダーに If-None-Match:"<etag_value>" が含まれています。これにより、リクエストが条件付きになります。 GET メソッドと HEAD メソッドの場合、サーバーは、指定されたものと一致する ETag がない場合にのみ、要求されたリソースを 200 ステータスで返します。 GET および HEAD メソッドの条件が失敗した場合、サーバーは HTTP ステータス コード 304 (変更されていません) を返す必要があります。
-
この時点で、サーバーがステータス コード 304を返しても、Chrome はステータス コード「200」を返すことを決定します。 これは Chrome 自体の「問題」であり、Liferay とは関係ありません。「Chrome は、サーバーが 304を返しても 200 OK を示します」。
そうは言っても、キャッシュは引き続き機能し、リソースは Chrome と Firefox の両方でキャッシュから提供されます。 -
ホットフィックスにより、このリソースの読み込み時間が約 300 倍改善されました。
-
-
追加情報