检测刷新和重新加载之间的差异

时间:2017-08-09 07:27:20

标签: javascript jquery html browser reload

我填写了一份包含我的全名和地址的表格。当我点击⌘R时,页面会刷新,但表单仍然包含我填写的数据。

当我通过Google Chrome左上角的重新加载按钮重新加载网页时,表单将为空。

如何使用JavaScript(或jQuery)检测这种差异?

我试过这个:

$(window).on('load', function(){

     localStorage.setItem('gForm_isDone', '{"0":false,"1":false,"2":false,"3":false,"4":false,"5":false,"6":false,"7":false,"8":false,"9":false,"10":false,"11":false}');
     console.log('localStorage emptied');

     console.log(localStorage.getItem('gForm_isDone'));

});

在我的场景中,我想清空localStorage,但仅在页面重新加载时,而不是在刷新时。

2 个答案:

答案 0 :(得分:1)

一种可能的方法是使用

检测窗口的性能
0

它将返回10。页面的1不会重新加载或使用空缓存调用。 ctrl+R会告诉我们使用 if (window.performance) { console.info("window performance work on browser"); } if (performance.navigation.type == 1) { console.info( "This page is reloaded" ); } else { console.info( "This page is not reloaded or just called with empty cache"); } 或使用浏览器按钮刷新页面。

interface Aging {
  val age : Int
  fun copy(age : Int) : Aging
}

答案 1 :(得分:1)

使用window.onbeforeunload函数检查是否按下刷新/重新加载并处理事件localStorage.clear()

window.onbeforeunload = function(){
 var message = 'Are you sure you want to reload?';
  if (typeof evt == 'undefined') {
    evt = window.event;
  }
  if (evt) {
    evt.returnValue = message;
  }
  return message;
}