5

私の知る限り、キャッシュはWebサイトの静的コンテンツに対してのみ有効にする必要があり、動的ページにはキャッシュなしを使用します。ウェブサイトのメインページは、コンテンツが定期的に更新されるため、最も動的なページです。不思議なことに、主要なWebサイトがメインページにも短いキャッシュ最大数を設定していることがわかりました。Googleは3秒、stackoverflowは21秒を設定しました。

さらに奇妙なことに(私にとって)、によってパフォーマンスを分析するWebPageTest.orgと、メインページは静的コンテンツと見なされ、キャッシュの有効期間が長くなることが予想されます。たとえば、21秒のキャッシュライフタイムが短い場合、FAILED通知を受け取りますstackoverflow.comこちらを確認してください。2時間でも、警告が表示されます。

メインページと他の動的ページはどのようにキャッシュする必要がありますか?

4

3 に答える 3

5

静的であろうと動的であろうと、そうすることが有用である場合は、すべてのページをキャッシュする必要があります。トラフィックの多いサイトを実行している場合、動的ページをキャッシュしないと自殺になります。これは、不必要に繰り返される要求によってサイトがひざまずくためです。

もちろん、それはすべて、サイトごとだけでなくページごとにも異なる予想される更新頻度に依存します。「About us」ページが週に一度変更される可能性がある場合、期限切れにする意味はありません。 1分で; OTOH、フロントページが1秒ごとに変更される場合は、更新の待ち時間が1分未満であれば許容できるため、有効期限を21秒に設定すると便利な場合がありますが、更新によって必ずしもHTTPリクエストが送信されない20秒は非常に便利です。負荷を下げるため。

言い換えれば、シナイ山から石の板に受け継がれ、「フロントページを1日キャッシュする」、「動的コンテンツをキャッシュしない」という厳しいルールはありません。これは、特定の状況に大きく依存します。サイトの。

于 2012-03-26T08:56:57.463 に答える
3

理想的には、動的ページも含めてすべてをキャッシュする必要があります。静的ページ/リソースは、通常はそれほど頻繁には変更されないため、非常に高いmax-ageでキャッシュできます。変更された場合でも、キャッシュエントリを回避するためにリクエストURLを変更できます(QSを追加することにより)。コンテンツは頻繁に変更されるため、動的ページのキャッシュは少し注意が必要です。可能であれば、動的ページにIf-Modified-Sinceを実装してみてください。ここで、If-Modified-Sinceは、ページまたはサブセクションが最後に変更されたときのタイムスタンプです。通常、If-Modified-Sinceは、その特定のエンティティのデータベース内のDateModifiedタイムスタンプ列になります。ページが複数のdbエンティティで構成されている場合、If-Modified-SinceはそれらのエントリのDateModifiedの最小値になります。

于 2012-03-26T08:47:12.593 に答える
2

メニュー、ヘッダーとフッターの領域、バナーなど、サーバー上で可能な限りキャッシュします。クライアント側で、HTTPリソース(JavaScript、CSS、および画像)をキャッシュします。

ページが動的である場合、もちろん7日間キャッシュすることはできません。そうです、これにより、それを実行していたサイトよりも遅くなります。ただし、これらは機能と速度の間のトレードオフの例です。

サイトの所有者は、最適なユーザーエクスペリエンスが得られる場所に電話をかける必要があります。自動テストでそのことがわかるわけではありません。

于 2012-03-26T08:58:41.527 に答える