javascript - 如何在每次更改时仍保持 meteor 尝试 Reload._onMigrate 的同时防止 meteor 热重载?

标签 javascript meteor reload

我希望我的包停止 meteor 热代码重新加载。我在我的包中这样做是为了实现这一点:

  Reload._onMigrate('LiveUpdate', function(retry) {
      console.log("RELOADING LIVe UPDATE");
      return [false];
  });

问题是 Meteor 只会调用一次。我需要调用“重试”函数来再次调用它。

我想要实现的是,每次文件系统发生更改时都会调用上述函数,但 Meteor 实际上不会刷新页面。如何实现?

最佳答案

好的,我自己找到了解决方案。事情是这样的:

// stopping reloads on file changes and calling refreshPage after initial app is loaded,
// i.e after the user has loaded the app, and has changed some file
Reload._onMigrate("LiveUpdate", function() {
    Deps.autorun(function() {
        Autoupdate.newClientAvailable();
        console.log("NEW CLIENT AVAILABLE. YAY!!");
        LiveUpdate.refreshPage();
    });
    return [false];
});

AutoUpdate 包本身做类似的事情。 Meteor 创建并使用一个集合 (ClientVersions) 来记录客户端的更改(服务器也使用类似的方法)。 AutoUpdate package 在计算无效时触发 reload Reload package 并在之后立即停止。因为即使我覆盖了 Reload._reload,我也没有收到任何通知。因此,我运行了自己的响应式(Reactive)计算,并使用 Autoupdate.newClientAvailable() 在有新更改可用时使其失效。我想知道 Meteor 决定仅在一次触发后停止计算的原因是什么。我敢打赌他们这样做有充分的理由。我还没有面对他们。

关于javascript - 如何在每次更改时仍保持 meteor 尝试 Reload._onMigrate 的同时防止 meteor 热重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24778312/

相关文章:

javascript - 如何调用一个函数来重新加载另一个函数(例如在 "orientationchange()"上)?

module - 如何重新加载 Python3 C 扩展模块?

javascript - 如何使用 angularjs 添加 google webkit

javascript - 如何在 x.indexOf(y) 中使用类型强制?

javascript - 当我在 Angular 应用程序中调用 .next() 一次时,主题订阅被触发两次

node.js - Meteor 中的持久 session

javascript - 具有无效属性的 moment.js 生成的日期

meteor - 是时候与 Meteor.Collection 一起生活了

ubuntu - 无法在 Ubuntu VM 上安装陨石

javascript - 如何判断 location.reload() 何时完成刷新页面?