5

Squishit を使用して JS を縮小およびバンドルし、バンドルされたファイルを圧縮しました IIS 7.5 でオプション (静的コンテンツ圧縮を有効にする) を有効にしました

問題は、Js が圧縮されず、縮小された js を取得するだけですが、動的コンテンツの圧縮を有効にすると、Js が圧縮されます。

現在、動的圧縮の問題は、ファイルをキャッシュせず、リクエストごとに CPU の時間がかかる圧縮を実行する必要があることです。

jsが静的コンテンツ圧縮モードで圧縮されない理由を誰かが教えてくれますか

これは、クライアント側でjsを送信する理想的な方法ですか

JS -> Minify JS (Squishit) -> Compress (Static /Dynamic)
4

1 に答える 1

9

静的ファイルの圧縮は動的に処理されますが、ファイルはIIS によって使用頻度が低いと見なされます。ファイルが頻繁に使用されると見なされると、圧縮されてキャッシュされます。キャッシュされたバージョンは、頻度が低くなるまで引き続き提供されます。頻繁に使用するファイルを構成するために IIS で使用できる構成設定は 2 つあります。

system.webServer/serverRuntime:

  • frequentHitThreshold: 頻繁にキャッシュされたと見なされる前に、同じファイルを何回要求する必要がありますか? デフォルトは 2 です。
  • frequentHitTimePeriod: キャッシュするために、同じファイルを {frequentHitThreshold} 回要求する時間間隔。デフォルトは 10 秒です。

設定したfrequentHitTimePeriodに関係なく、1分後にリクエストされない場合、頻繁なファイルは常に頻度が低くなることに注意してください. 構成にこれの設定があるかどうかはわかりません。

たとえば、1 に設定frequentHitThresholdすると、最初の要求であっても、ファイルは常に IIS によって頻繁に使用されると見なされます。これは、動的圧縮をバイパスし、静的圧縮によってのみ処理されます。

staticCompressionIgnoreHitFrequencyまたは、trueに設定して、ヒット頻度を完全にバイパスすることもできます。

appcmd set config -section:system.webServer/httpCompression /staticCompressionIgnoreHitFrequency:"True"

動的 (デフォルト 0) 圧縮と静的 (デフォルト 7) 圧縮の圧縮レベルは異なるため、2 つの異なるファイル サイズが返されることに注意してください。

また、これが最初にこの問題に巻き込まれた理由です。同じファイルの ETag は、両方に同じレベルを使用していても、動的圧縮と静的圧縮で異なります。

お役に立てれば。

于 2014-07-23T09:08:24.837 に答える