鍍金池/ 問(wèn)答/HTML/ vue監(jiān)聽(tīng)關(guān)閉頁(yè)面 在關(guān)閉頁(yè)面前發(fā)送axios請(qǐng)求 如何先發(fā)送請(qǐng)求 再關(guān)閉頁(yè)面

vue監(jiān)聽(tīng)關(guān)閉頁(yè)面 在關(guān)閉頁(yè)面前發(fā)送axios請(qǐng)求 如何先發(fā)送請(qǐng)求 再關(guān)閉頁(yè)面

現(xiàn)在碰到的問(wèn)題就是關(guān)閉頁(yè)面時(shí)axios請(qǐng)求總提交不了,請(qǐng)問(wèn)有什么解決的方法么?

        window.addEventListener('beforeunload', function() {
      beforeUnloadTimestamp = new Date().getTime();
  })

  window.addEventListener('unload', function() {
    beforeUnloadTimestamp = beforeUnloadTimestamp || 0;
    localStorage.setItem('onload', new Date().getTime());
    // 測(cè)試chrome和ie11 得出,chrome,IE11 // 刷新時(shí) chrome >=11ms ,ie11 >=2ms 左右, 在關(guān)閉時(shí),chrome間隔在 >=2ms,IE11 >=3000ms
    if (isIE) {
      if (new Date().getTime() - beforeUnloadTimestamp > 500) {
        isClose = true;
      }
    } else {
      if (new Date().getTime() - beforeUnloadTimestamp < 5) {
        isClose = true;
      }
    }
    
    if (isClose) {
      axios.get('/au/logout').then(res => {
        window.sessionStorage.clear();
      });
      localStorage.setItem('close', new Date().getTime());
    }else{
      localStorage.setItem('refresh', new Date().getTime());
    }
  })
回答
編輯回答
孤影

可以將ajax請(qǐng)求改成同步請(qǐng)求,請(qǐng)求返回后再關(guān)閉頁(yè)面

2017年1月27日 10:46
編輯回答
撥弦

沒(méi)有。請(qǐng)求是異步的,unload 不會(huì)等你請(qǐng)求返回才繼續(xù)。

2018年3月14日 05:38