2011-06-19 503 views
2

我有以下問題:我有兩個網頁,a.phpb.php。第一個頁面顯示數據庫中的項目列表,另一個頁面將其更新並將用戶發送回前一頁面(使用window.history.back())。如何強制重新下載頁面後退按鈕點擊

但是,當我從a.phpb.php,更新數據庫中的一些條目並返回時,如果不手動重新加載頁面,列表不會更新。有沒有什麼辦法可以讓我檢測頁面是否由於後退按鈕操作而加載,並用JavaScript重新加載,或者只是告訴瀏覽器自動更新它?

+0

你有使用JavaScript的原因嗎?這不會發生,如果你使用PHP等... – 472084

+0

@Jleagle正如我下面說的,我正在做一個移動的網絡應用程序,如果我用PHP(或JavaScript,或其他任何東西,重定向),它會只是讓歷史記錄太長,以至於用戶必須多次點擊後退按鈕才能退出。 – Frxstrem

+0

我不認爲PHP重定向添加到瀏覽器的歷史。理想情況下,您聽起來應該使用ajax來調用b.php,然後在成功時更新正確的單元格。 – 472084

回答

1

您可以設置a.php的頭文件來禁止任何類型的緩存 - 這樣,瀏覽器在重新輸入頁面時應該重新加載頁面。

最相關的HTTP響應頭是緩存控制和過期。

+0

我試過這個,都是通過從PHP發送頭文件和使用HTML元標籤,但是,它仍然不起作用... – Frxstrem

+0

@Frxstrem:嗯,奇怪。唉(正如我們已經看到無數次),大多數瀏覽器只是在方便的時候才支持這些標準。 – Piskvor

1

請勿使用window.history.back。使用location.href跳轉到a.php

+0

我曾考慮過使用'location.href',但是,我正在爲移動設備製作一個web應用程序,並且通過使用'location.href'(或類似的東西),用戶最終不得不按下後退按鈕很多次都是爲了擺脫它。 – Frxstrem

+0

你可以在頁面上添加類似'onPageLoad'事件的東西嗎? – Kumar

+2

另一種解決方案可能是重新加載當前頁面或向其發佈數據。 'b.php'然後可以包含'a.php'而不是自己做的東西。而且,由於您是從瀏覽器的角度重新加載頁面,因此可能無法記錄到歷史記錄中。你仍然會有'b.php',但也許這並不算太壞.. – GolezTrol

相關問題