網頁

2015年2月16日 星期一

Javascript學習筆記-Go back and reload

最近有個狀況,就是使用Ajax後,Browser似乎只會cache舊資料,Ajax成功後所更新的並記在sessoin或cookie的資料,要reload才會被cache住,這造成網頁資料的問題,尤其是買賣時的comfirm後,又按”回上一頁”按鈕,網頁上的資料有問題,最後做了個結論

  • 要能夠按下”回上一頁”按鈕後,網頁要能reload

得到這個網址的解決方案:How to refresh page after clicking "Back" button??

大概的解決方式是

  1. 設定hidden參數,預設為no
  2. 有參數更動時要設定參數為yes
  3. 在onload時檢查hidden參數是否為yes

Code如下:
<input id="refreshed" name="refreshed" type="hidden" value="no" />
<script>
onload = function () {
    var e = $('#refreshed');
    if (e.val() == 'yes') {
        e.val('no');
        location.reload();
    }
};
function set_reload() {
    $('#refreshed').val('yes');
}
</script>

需要設定為yes時,就call set_reload。

蠻簡單的變形,想像力果然才是限制 @@

參考網址:
How to refresh page after clicking "Back" button??

沒有留言:

張貼留言