我正在嘗試檢測我的網站頁面的瀏覽器是否刷新,以便可以執行一些邏輯。顯然它可以在除 iPhone 之外的所有其他平臺上運行。任何幫助將不勝感激。下面是我正在使用的 php 腳本。$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0'; if($pageWasRefreshed ) { //do something because page was refreshed;} else { //do nothing;}
1 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
Cache-Control刷新后Safari 似乎沒有發送標頭(發生這種情況的原因有多種)。依靠瀏覽器通過標頭通知您刷新并不是一個好主意,因為瀏覽器可能會隨著時間的推移而發生變化。
解決此問題的更好方法是使用會話,因為無論瀏覽器如何,它都可以工作。
session_start(); //place it at the start of the PHP document, before anything except headers is send to browser
if (!isset($_SESSION["refresh"]))
$_SESSION["refresh"] = 0;
$_SESSION["refresh"] = $_SESSION["refresh"] + 1;
if ($_SESSION["refresh"] > 1)
{
//you refreshed the page!
}
else
{
//first time
}
編輯:此問題的其他解決方案是:
使用cookie(在服務器端)。如果用戶禁用了 cookie,這將不起作用。
在客戶端使用 javascript 代碼。這取決于問題 - 通過 javascript 的解決方案有時可能會不必要地復雜,有時則需要。
- 1 回答
- 0 關注
- 139 瀏覽
添加回答
舉報
0/150
提交
取消