加速Meteor.js中的自动重新加载

时间:2013-12-31 18:40:24

标签: javascript node.js meteor meteorite

在Meteor.js中保存带有新更改的文件后,服​​务器将重新启动,浏览器将重新加载窗口。

问题:有时保存文件后重新加载需要比平时更长的时间,这似乎是随机的。有没有办法更快地触发自动重载?

服务器似乎很快重启,但浏览器重新加载的速度要慢得多。

Meteor服务器重启后,网页无响应30秒,网络标签显示websocket待处理...

我在Mac OSX上的Node.js v0.10.22上使用Meteor 0.7.0.1和Meteorite 0.6.16,连接到远程MongoDB服务器。

enter image description here

3 个答案:

答案 0 :(得分:6)

如果项目很大,自动重新加载需要时间。流星基本上必须重建javascript。有很多事情可以影响它所花费的时间。

它的一些基础是:

  • 项目规模越大&更多的js文件/包需要的时间越长
  • 如果您已禁用websockets,则服务器似乎需要更长时间才能重新启动
  • 如果您使用--production作为标记,则重建需要更长时间,但在浏览器中加载速度会更快
  • 如果您通过cdn使用外部css /字体,有时可能需要更长时间来重新下载这些文件,这取决于您的连接。尝试检查chrome开发人员控制台中的“网络”选项卡,看看是否有任何特定文件需要一段时间并暂时在本地托管它。
  • 如果您在发生错误后重新加载热码,那么当meteor尝试从错误中恢复时,可能会有轻微的延迟。

还有其他一些事情。如果您使用带有--release标志的Meteor UI,则某些构建会出现内存泄漏,并且您的热代码重新加载的速度越慢越慢。

如果您正在开发Windows,那么热代码重新加载会遇到一些问题。 Windows上的Meteor是非官方的,你有时必须按ctrl + c并重新启动才能让它更快启动。

除了加强计算机或将Meteor.startup中的内容移动到cron作业之外,没有什么可以加快速度。每次热代码重新加载都会重做Meteor.startup中的任务。

热门代码重新加载困扰我的那个是来自Google字体的字体,通过@import css语句。有时谷歌不会很快提供字体,特别是当我不断重新加载它们时。我暂时禁用它们/在本地托管它们。我不在本地主持生产,因为不同的浏览器有时会在Windows上提供模糊字体。

答案 1 :(得分:1)

我恢复了一个旧的项目,该项目在2014年运行良好的新流量安装,但发现启动和重启非常慢(超过30秒)。 (可能更新节点或流星已经触发了这个。)

我注意到项目的METEOR@0.9.3包含meteor update

我跑了:

METEOR@1.1.0.3

在项目的根文件夹中。

我的发布文件现在包含MONGO_URL,我的许多软件包都已更新。现在重启速度明显加快(大约10秒)!

顺便说一句,我将group()指向我本地主机上的mongodb,因此当我启动应用程序时,流星不必启动新的mongodb。

答案 2 :(得分:1)

似乎用1.3解决了,但现在它处于测试阶段。

meteor update --release METEOR@1.3-modules-beta.8

从6-10到1-2s。