1

私は ajax 呼び出しを使用して、スリープ経由で 40 秒待機してから出力する php スクリプトを呼び出していますRELOAD。JavaScript では、出力が であることがチェックされRELOAD、そうであれば呼び出しが再開されます。

これは、私がこれを使用するすべてのページで非常にうまく機能します。しかし、Firefox では、特定のケースで 1 つの問題があります。

これらの呼び出しを行うこのページにいるので、リンクをクリックして別のページに移動します。その後、履歴 (戻る) ボタンをクリックして戻ります。この場合、呼び出しは開始されますが、firefox は結果をキャッシュしたようで、すぐに を出力しますRELOAD。これにより、ロードに数ミリ秒しかかからない呼び出しが発生し、実際のコンテンツは取得されません。サーバーにも接続しません(ajax呼び出しが行われている間にphpファイルを変更しましたが、効果はありませんでした)。

そのため、Firefox は、戻るボタン (または ) を使用する場合にのみjavascript:history.back()、キャッシュされた出力を使用するようです。ページを通常どおり (リンクを介して、またはアドレス バーに URL を入力して) ロードすると、呼び出しはサーバーに正しく到達し、実際のコンテンツを取得します。

PHP または JavaScript からこの動作を上書きする方法はありますか? を使用jQuery.ajax()しており、" " オプションを設定していcache:falseます。

ご協力ありがとうございました!

4

1 に答える 1

0

URLに乱数を追加することで解決しました。このソリューションは実際には機能しますが、まったく美しいソリューションではありません。

于 2012-07-30T07:21:32.570 に答える