0

この質問が以前に回答されている場合は申し訳ありませんが、簡単に説明する方法がわかりません...

ログインしているユーザーがスポーツチームを構築できるようにするPHPとMySqlを使用したシステムをプログラミングしています。ユーザーがプレーヤーに「入札」し、そのプレーヤーが名簿に追加されるシステムをセットアップしました。データベースに書き込むコードは非常に単純で、正常に動作します。

mysql_query("UPDATE bidpool SET BidExpires='$newbidexpires' WHERE Player='$player'");
mysql_query("UPDATE bidpool SET CurrentBid='$bid' WHERE Player='$player'");
mysql_query("UPDATE bidpool SET TeamName='$NewTeamName' WHERE Player='$player'");

データベースを確認すると、その情報は正しく入力されています。

チームの更新された名簿がある別のページをロードするとき、これは私が使用するコードです:

echo "<table>";
$result = mysql_query("SELECT * FROM bidpool WHERE TeamName='$teamname'");

$playerbid = 0;
$i = 0;

$num = mysql_numrows($result);

while ($i < $num) {

    $playerroster = mysql_result($result, $i, "Player");
    $playerbid = mysql_result($result, $i, "CurrentBid");
    $playerexpires = mysql_result($result, $i, "BidExpires");

    IF ($time > $playerexpires) {

        $playerexpires = "BID WON";
    }

    echo "<tr> 
                    <td width='30%'>$playerroster</td>
                    <td width='30%'>$playerbid</td>
                    <td width='30%'>$playerexpires</td>
                    </tr>";
    $i++;
}
echo "</table">;

問題?新しい入札があると、すべてがデータベースに正常に書き込まれます。名簿ページを Firefox にロードすると、データベースにある名簿が表示され、最新の変更も数秒後に表示されます。

ただし、Safari と Chrome に読み込むと、古いバージョンの名簿が表示されます。ブラウザのキャッシュをクリアし、ブラウザをリセットし、コンピュータを再起動しても、データベースから古いバージョンが表示されます。

複数のユーザーが数日間にわたってプレーヤーに入札するこのタイプのシステムでは、プレーヤーが最新の入札と最近の名簿の変更をできるだけ早く確認する必要があります。ただし、ブラウザが連携しない場合は機能しません。

違いがあれば、サイトは WordPress で運営されています。

ここで私が間違っていると思いますか?このシステムがあるブラウザでは問題なく動作するのに、別のブラウザでは問題なく動作するのはなぜですか?

本当にありがとう。

4

1 に答える 1

0

問題は確かにキャッシングの問題です。追加の URL パラメーターを挿入することで、クライアントの問題なのか Wordpress の問題なのかをテストできます。

?extraRandomParameter=changeThisValueEachTime でページを叩いてみてください。

それが機能する場合、それはクライアントの問題です。それ以外の場合は、Wordpress のキャッシュ方法 (およびそれを回避する方法) について、より具体的に調査する必要があります。

于 2013-06-03T05:47:24.620 に答える