2017-10-17 14 views
0

Safari 10.1.1では、ブラウザの戻るボタンでターゲットページがリロードされないため、$_SERVER['SCRIPT_NAME']は変更されません。

ブラウザの戻るボタンを押したときにターゲットページをリロードする方法はありますか?私は以下を試した:

header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1. 
header("Pragma: no-cache"); // HTTP 1.0. 
header("Expires: 0"); // Proxies. 

これは動作しません。

背景:私はPHPで信頼できるページ履歴を作成しようとしていますが、ブラウザの戻るボタンでサーバー上の何もトリガーしない場合はどうすればできますか?

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

+0

信頼できるページ履歴を作成する目的は何ですか?あなたは何を達成しようとしていますか?あなたはAJAXで何かできますが、なぜでしょうか? JavaScriptの履歴APIを使用してナビゲーションを検討しましたか? – ceejayoz

+0

ありがとうございます。 私はそれを分解しようとします: 私はスタートページと2ページ目を持っています。私はスタートページから2ページ目に移動して戻ってきます。 2番目のページから開始ページに入ると、別のコンテンツ(サーバー上の別の操作)が表示/トリガーされます。 これを達成する正しい方法は何ですか?ありがとうございました! – Phantom

答えて

1

あなたのケースでは、ブラウザはサーバーAT ALLを呼び出しません。 ほとんどの場合、ブラウザには前のページの「ローカル/キャッシュ」バージョンが表示され、サーバーへの接続は開始されません。

あなたはリロードを強制するためにここにいくつかのjavascriptの解決策を見つけるかもしれない: How to force reloading a page when using browser back button?またはここHow to refresh page on back button click?

windows.performanceオブジェクトの使用が最も関連する部分を。

if(!!window.performance && window.performance.navigation.type === 2) 
{ 
    window.location.reload(); 
} 
+0

ありがとうございます。私はいくつかの "no-cache"コマンド(PHPまたはHTMLサイト上)がキャッシュを止めて、ブラウザがサーバーへの接続を開始する必要があると考えました。それのようなものは何もありませんか? – Phantom

+0

あなたが提供したヘッダーの例は既に優れており、追加することはできません。したがって、ブラウザがキャッシュされたバージョンを保持していれば、JSが唯一の回避策です。 すべてのページ(前のページがロードされる前の現在と前のページ)にヘッダーを適用しましたか? – Flunch

+0

はい、ヘッダーはすべてのページに適用されます。ありがとうございました! – Phantom

関連する問題