0

私は大きな問題に直面しています。リンクをクリックしてキャプチャの画像を変更すると、「読めませんか?テキストを変更してください。」この場合、他のブラウザがサポートしている間、IE8だけが画像を変更しません。誰かがその理由を知っているなら、plzは私に知らせてください. 私のコーディングは以下です。ありがとう

<div id="captcha1">
    <img src="captcha.php" id="captcha" />
        <br/>
            <a href="#" onclick="
    document.getElementById('captcha').src='captcha.php?'+Math.random();
    document.getElementById('captcha-form').focus();"
    id="change-image">Not readable? Change text.</a>
</div>
4

2 に答える 2

1

OK、次のように Cache-Control ヘッダーを変更します。

header('Cache-Control: no-cache, no-store, must-revalidate, post-check=0, pre-check=0');

post-check と pre-check は、私が読んだことから IE に固有のものです。

詳しくはドキュメントをご覧ください。ここでこのトピックについて:

http://php.net/manual/en/function.session-cache-limiter.php

そしてそれがどのように機能するかについて:

ここに画像の説明を入力

例はどうですか?HTTP サーバーが次のヘッダーを持つ画像を送信するとします。上記の画像を 12 時間 (60 * 60 * 12 秒) キャッシュするように IE に指示します。最初の 1 時間 (60 * 60 秒) は、IE は単にローカル キャッシュから画像を表示します。ただし、60 分後にバックグラウンドで新しいものをチェックする必要があります。つまり、キャッシュされたものを表示してからバックグラウンド チェックを行います。12 時間が経過すると、IE は最初に変更されたイメージをチェックします。

ソース

注 : テストする前にブラウザからキャッシュをクリアしてください ;)。

于 2013-01-10T14:59:54.430 に答える
0

IE8 のキャッシュの問題が疑われます。それはあなたの Math.random() が正しく機能していないことです。そこを見てください:IE8はまだmathrandomでも私のリクエストをキャッシュしています

于 2013-01-07T21:36:33.390 に答える