Javascript 什么';重新加载热模块的目的是什么?

Javascript 什么';重新加载热模块的目的是什么?,javascript,frontend,livereload,Javascript,Frontend,Livereload,如果这个问题太主观,请原谅 我确实明白这是什么。请不要解释了 我只是不明白为什么人们觉得它有用。实时重新加载也一样。按CMD+R的动作并不需要时间。如果实际刷新需要花费大量时间,似乎应该修复他们的开发环境 我对这样的事情有信任问题。看起来它们很可能最终会导致bug。我担心我会花一个小时追踪一个bug,结果发现它是热模块重新加载的错误。或者一切都在dev中工作,但在prod中中断,因为prod没有使用热模块重新加载,而dev正在使用。也许这种恐惧是错误的 我还发现很难知道这些变化何时生效。只要知道

如果这个问题太主观,请原谅

我确实明白这是什么。请不要解释了

我只是不明白为什么人们觉得它有用。实时重新加载也一样。按CMD+R的动作并不需要时间。如果实际刷新需要花费大量时间,似乎应该修复他们的开发环境

我对这样的事情有信任问题。看起来它们很可能最终会导致bug。我担心我会花一个小时追踪一个bug,结果发现它是热模块重新加载的错误。或者一切都在dev中工作,但在prod中中断,因为prod没有使用热模块重新加载,而dev正在使用。也许这种恐惧是错误的


我还发现很难知道这些变化何时生效。只要知道一旦按下CMR+R,您的更改就会出现,这似乎更简单。

我也很害怕。。。如果我不能百分之百地相信它(而且我不能百分之百地保持清醒),为什么还要担心它的额外复杂性呢


提神提神。这是我的新说法。

这是效率的问题。无论您的开发环境有多快,当您按下Refresh键时,都会花费一两秒钟的时间,因为根据定义,事情不会来自缓存,我们谈论的是dev,所以可能会有大量HTTP请求,这些请求将在生产环境中合并为几个HTTP请求。所以,如果您的工作流已保存,请切换到浏览器,点击“刷新”,您将在那里停留几秒钟。每一次

使用live reload,在编辑器中点击save,当您切换到浏览器时,刷新已经完成或至少正在进行中

在我开始使用它之前,我一直怀疑它的价值。显然,我注意到,循环速度要快一点,有时要明显快一点,这取决于我更改了什么,以及我是否立即切换到浏览器


我还没有遇到过引起虫子的麻烦。YMMV.

HMR依赖于状态的维持。对于一个简单的web应用程序,重新加载可能只需要几秒钟。对于一个复杂的web应用程序来说,达到某个状态所需的步骤可能既长又复杂,而且容易出错。因此,你要做一长串的步骤,开始你正在测试的那一点,然后打一巴掌,一个愚蠢的打字错误意味着你必须重新开始。所有这些不必要的重复性工作都可以避免,使用HMR可以将工作时间从几个小时改为几十分钟。我完全相信它的设计意图


您永远不会在没有测试的情况下发布,也永远不会使用HMR进行测试。HMR是用于开发的,您只需要信任它在处理模块时保持状态。

这很公平。知道它什么时候生效怎么样?你有没有觉得奇怪?@tybro0103:到目前为止还没有。如果我认为由于某种原因它失败了,我只是(请击鼓)点击刷新。:-)我不完全确定它是否真的失败过,但想必是这样,没有什么是完美的。同上……而且我年龄越大(我确信我的意思是说我越有经验),效果越接近原因。:-)它是一个工具,就像一个左手开罐器:有些人会发现它有用,有些人不会。有时我的浏览器与编辑器位于不同的显示器上。作为一个笨重的键盘用户,按ctrl+s比按ctrl+s、alt+tab、ctrl+f5、alt+tab要快得多。。。对于CSS来说,这是不能失败的,对于JS来说,这取决于。失去信任与不理解无关。您更可能信任简单的解决方案还是复杂的解决方案?Promissions是一个简单问题的复杂解决方案的好例子,它向开发人员“承诺”了很多,现在它开始成为一个问题,因为错误的处理方式。LOL Promissions旨在简化Javascript应用程序的事件驱动本质。它们没有故障,旧的回调/事件模型也没有故障。正是对引擎盖下正在发生的事情缺乏了解才是问题的原因。@Blindman67“基本”缺乏了解。。。是 啊我并没有说它们是错误的,我说这是一个复杂的解决方案,很多人都在用它来解决一个简单的问题,回调可以解决,因为这个复杂的解决方案,他们得到了他们本来不会有的bug。请看并@blahed如果每个人都有35年的编程经验,那么bug就会少很多。@Blindman67我就不谈这个了:您对重新加载的好处提出了很好的观点。我认为你表达观点的方式实际上伤害了你的观点。