質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

5回答

515閲覧

HTML等キャッシュの問題について

cwd

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/03/29 10:11

編集2019/03/29 10:14

キャッシュについて質問です。

サイトの更新、リニューアルを請け負うことが多い会社で働いている者です。
キャッシュのことが社内で問題になっています。

何かを更新する度にキャッシュをクリアしないと新しい情報が表示されないのはおかしいという議題が上がりました。
リロード1回ならまだしも、リロードを複数回しても更新されなかったり、キャッシュをクリアして更新するかスーパーリロードを行わないと更新が反映されないというのは普通じゃない、世の中それが当たり前ではないはずという内容なのですが、皆さんはどのような対策をされているのでしょうか?

当方、キャッシュ自体はそもそも悪いものでは無いし、ある程度対策はできてもクリアしないと表示がおかしくなるのは仕方がないと思っていたんですが、GoogleやYahoo!などを含む世の中の様々なサイトがキャッシュが残ることを放置しているとも思えないため、こちらで質問をして皆様がどのように対処しているかが知れればと思っています。

できるだけ多くの方のご意見を頂けますと幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshinavi

2019/03/29 10:45

「効率が良いキャッシュ対策」が議題ではなく、「キャッシュ」そのものが議題になったのでしょうか?
cwd

2019/03/29 11:09

ご質問ありがとうございます。 ご指摘のとおり「キャッシュ」が議題となりました。 クライアントに提示する際にキャッシュが残っているという現象が多発しており、制作以外の立場の人間からそれはおかしいという意見が挙がった次第です。 制作側では画像やjs、cssファイルに更新日時のパラメータを持たせるということは行っているんですがそれでもサーバーによっては問題が出ることがあり、一般的にはどういう対策をとっているんだろうかというところが気になったためご質問させて頂きました。
yoshinavi

2019/03/29 12:13

クライアント側に更新で提示する時は、「キャッシュ」がどういうもので、何故あるのか、必要なのか?の説明と共に、「キャッシュクリア・スーパーリロード必須」を注意事項で一声掛けてあげるだけで回避できるかと思います。 デザイン上問題無ければ「更新ボタン」等を入れておくのも良いかと思います。『「更新ボタン」を押して見て下さい』で済むので・・・
kawax

2019/03/29 12:16

キャッシュ対策なんて散々議論されてきたのに今更社内でやってる意味が分からない…。
cwd

2019/03/29 17:44

ご回答ありがとうございます。 クライアントに説明するという部分は既に行っており、そのこと自体に疑問を感じた人間からの意見が今回の質問させて頂いた内容につながっています。 また、実際に閲覧するユーザーがキャッシュのせいでレイアウト崩れ等を起こすことはないのかとも質問されまして、確率はゼロではないとしか答えられなかったことと、今現在の対策としてベストなものは何なのかと質問された際に自信を持って答えられなかったため、自身の考え方自体も多少疑うべきかなというところがあり今回質問することに至りました。 確かに今更ながらの内容だなぁとは感じつつ、どうするのがベストなのかきちんと見極めるために回答を募集しております。
yoshinavi

2019/03/30 05:24

>疑問を感じた人間からの意見 →「何かを更新する度にキャッシュをクリアしないと新しい情報が表示されないのはおかしい」「リロード1回ならまだしも、リロードを複数回しても更新されなかったり、キャッシュをクリアして更新するかスーパーリロードを行わないと更新が反映されないというのは普通じゃない、世の中それが当たり前ではないはず」の意見になっているとのことでしょうか? であれば、回答もしていますが、「普通であり、当たり前」なので、キャッシュの役割を、もう少し理解する必要があるかと思います。 >閲覧するユーザーがキャッシュのせいでレイアウト崩れ等を起こすことはないのか・・・ベストなものは何なのか・・・ → 同じく、キャッシュの役割を、もう少し理解する必要があるかと思います。そうすれば、皆さんの回答の内容も理解できるかと思います。
guest

回答5

0

一般的には、キャッシュ制御用のレスポンスヘッダによりコントロールすることが基本かと思います。

Cache-Control - HTTP | MDN

ただし、これに従わないケースもあります。例えば、キャッシュサーバー側でレスポンスヘッダを無視するような設定にしている場合です。この場合は、キャッシュサーバーの設定を見直す必要があります。

また、キャッシュにより別人の個人情報が見えてしまうタイプの「情報漏えい事故」が時々起こっています。有名なものは以下です。この件では、CDNのキャッシュ指定の「癖」が一因でした。

CDN切り替え作業における、Web版メルカリの個人情報流出の原因につきまして - Mercari Engineering Blog

ということで、以下の手順が一般的かと思います。

  • まずはレスポンスヘッダがきちんと設定されているかを確認する
  • レスポンスヘッダに従わないケースに関しては、キャッシュサーバーやCDNの仕様を確認する
  • 緊急避難的にキャッシュを無効化したい場合はURLに乱数値のパラメータ(クエリ文字列)を追加する(キャッシュバスターと呼ばれます)

投稿2019/03/29 11:16

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cwd

2019/03/29 17:48

詳細なご回答ありがとうございます。 デザインやHTML+CSSコーディングがメイン私には技術的に難しい内容でしたが、どのような対応をとられているかざっくりでもわかり勉強になりました。
guest

0

皆さんはどのような対策をされているのでしょうか?

CSSやJavaScriptを生成する際に、内容に応じてファイル名を変更することで、前のキャッシュがあっても無関係にしてしまう、というのがいちばんいいかと思います(CDNを挟む場合もそのまま使えますし)。

投稿2019/03/29 10:21

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cwd

2019/03/29 17:52

ご回答ありがとうございます。 確かにそれでいけそうだなと思いました。 HTMLのキャッシュについてはどのような対策方法があるでしょうか?
guest

0

ベストアンサー

リロード1回ならまだしも、リロードを複数回しても更新されなかったり、キャッシュをクリアして更新するかスーパーリロードを行わないと更新が反映されないというのは普通じゃない

普通です。

投稿2019/03/29 10:24

yoshinavi

総合スコア3523

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

  • 自分のPCで確認するときはスーパーリロードする
  • サービス提供時は怪しい場合はユニークなidをgetで振ってやる

投稿2019/03/29 10:42

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cwd

2019/03/29 17:50 編集

ご回答ありがとうございます。 ユニークなidをgetで振る場合、リンク先の変更等手間になってくるかと思いますが何かしら条件で自動的にパラメータが付くような処理を入れられていたりはしますでしょうか?
guest

0

ウェブサイトの作りによりませんか?
試験するときはブラウザのキャッシュを無効にしてます。

投稿2019/03/29 10:37

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cwd

2019/03/29 17:51

ご回答ありがとうございます。 1人のユーザーの短期間でのリピートが多いサイトの場合のキャッシュ対策はどのようにされていますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問