窗口关闭期间的beforeunload事件与流星自动重载

时间:2014-02-21 17:16:13

标签: javascript meteor

我使用follow函数来检测窗口关闭事件以执行一些清理任务:

    window.addEventListener('beforeunload', function(e) {
          console.log("window close");
          // perform cleanup
    }

不幸的是,我也在流星自动重载期间(例如代码发生变化时)得到此事件,在此期间我不想进行清理。

如何区分这两种情况? (我有一个特殊的用例,我必须区分这两种情况)

2 个答案:

答案 0 :(得分:3)

你必须利用流星onmigrate api来帮助你消除这两种情况:

客户端代码:

var hotcodepush = false;

Reload._onMigrate(function () {
    hotcodepush = true;
    return [true];
});


window.addEventListener('beforeunload', function(e) {
      if(!hotcodepush) console.log("window close");
      if(hotcodepush) console.log("Hot code reload");
}

答案 1 :(得分:-1)

不知道流星。我会尝试找到在自动更新之前执行的点(如果可能的话)并定义一个中止事件|变量| ...我希望这有帮助