お聞きしたいこと
作りたいものとそれを実現させるために作ったコードを下に書きました。
一見これでも問題なさそうに見えたのですが、もし下のコードに何か問題があれば教えていただきたいです。また、よりよいコードに改善できるようであればそれも教えていただけたら幸いです。
##ファイルの構成
A.phpとB.phpとC.phpの3つのファイルがあります。各ファイルのDOCTYPE宣言からheadタグの一部(3つのファイルの共通部分)はhead.phpに記述しており、それを<?php include('head.php'); ?>
で読み込んでいます。
何がしたいか
例えば、A.phpに入ったときに、以前に入ったときとはA.phpの内容が変更されていた時に、ブラウザキャッシュを無視してファイルを読み込んでほしいです。
##作ったコード
head.phpのDOCTYPE宣言の上には次のコードを記述しました。
php
1<?php 2 session_start(); 3 if (!isset($_SESSION['lastUpdated_old'])) {$_SESSION['lastUpdated_old'] = 1;} 4 $lastUpdated_new = date("Y/m/d H:i", getlastmod()); 5?>
head.phpのheadタグの中のscriptタグの中には次のコードを記述しました。
php
1<script> 2 <?php if($_SESSION['lastUpdated_old'] !== $lastUpdated_new) :?> 3 location.reload(true); 4 <?php $_SESSION['lastUpdated_old'] = $lastUpdated_new; ?> 5 <?php endif; ?> 6</script>
##補足
linkタグで読み込んだ外部CSSやJSを編集した場合は別の方法で対応する(例えば。linkタグのhref属性の最後にfilemtime()関数でクエリを加えるなど)ので、その点は問題ありません
回答1件
あなたの回答
tips
プレビュー