八:env和module

文章目录

    • 8.2.3模块的热更新原理

8.2.3模块的热更新原理

  • 很好支持代码热更新机制,是开发时选择使用脚本语言的原因之一。
  • 热更新的好处
    • 不重启程序或发布新版本情况下更新脚本,
    • 给调试和线上解决问题带来便利
    • 对开发效率有很大的提升。

  • 谈谈如何实现热更新。

  • 简单回顾之前提过的模块和require机制。
  • Lua内部提供require函数来实现模块加载,它做的事情主要有以下几个。

  • registry["_LOADED"]表中判断该模块是否已经加载过
  • 依次调用注册的loader来加载模块
  • 将加载过的模块赋值给上面的表

  • 要实现Lua的代码热更新,
  • 需要重新加载某个模块,
  • 想办法让Lua虚拟机认为它之前没有加载过。
  • registry["_LOADED"]表实际上对应package.loaded表,这在以下函数中有体现
八:env和module_第1张图片

你可能感兴趣的:(lua系列)