我正在尋找一種方法來檢測單擊後退按鈕後何時重新加載頁面,以便我可以選擇性地忽略錯誤。讓我來解釋爲什麼:在PHP中單擊後退按鈕後檢測頁面重新加載
想象一下,一個頁面,顯示一些數據,由id標識:
/show/some/data?id=5
最初,ID存在並顯示頁面。如果該ID不存在,則會顯示錯誤消息並記錄錯誤,因爲這不應該發生,並且會指示應用程序中的鏈接斷開。
現在設想用戶查看數據,決定刪除它,刪除後使用後退按鈕重新進入同一頁面(順便提一下,這不是假想的,我已經在我的應用程序中看到過)。現在,該ID不再有效,觸發錯誤。如果在使用後退按鈕後,我可以區分初始頁面加載和第二個頁面加載,我可以在我的錯誤處理中更加寬鬆。我的推理是應用程序中的一個斷開(向前)的鏈接是一個致命的錯誤。點擊後(最初沒有)時,斷開的鏈接很可能是由用戶在此期間採取的某些操作引起的。在這種情況下,我寧願將用戶重定向到概覽頁面,而不是顯示應用程序錯誤。
我認爲要解決這將是一些隨機生成的ID附加到URL的一種方法:
/show/some/data?id=5&rnd=<?php print rand(); ?>
和日誌已在會話中使用的隨機編號。如果一個標識符重複出現,我可以認爲該頁面已被重新加載,並有選擇地忽略一些錯誤。
但是,這將需要更改應用程序中的許多鏈接。我還可以使用JavaScript/jQuery來改變頁面上的所有鏈接到同樣的效果:
$("a").attr('href', function (i, h) {
return h + (h.indexOf('?') != -1 ? "&" : "?") + "rnd=" + Math.random();
});
這對於解決這樣一個看似微不足道的問題稍微創傷小,但仍重手。我想知道是否有或者可以採取獨立的方式來做到這一點。有沒有辦法讓後端應用程序區分頁面是通過點擊某個鏈接進行加載還是在點擊後加載?或者是有一個更優雅的解決方案與JavaScript?