账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    glimmer-vm到底是怎样的JS虚拟机?
    20
    0

    Ember.js的底层引擎,它的工作方式,似乎跟React或Vue的虚拟DOM很不一样。据它自己的描述,它是个基于堆栈的虚拟机,还能生成字节码。

    文档里是这么写的:

    At a high level, Glimmer is made up of two parts:
    
    * The compiler, which turns templates into optimized binary bytecode.
    
    * The runtime, which evaluates that bytecode and translates its instructions into things like creating DOM elements or instantiating JavaScript component classes.

    那么这个虚拟机是怎样基于堆栈配合Ember工作的?通过什么方式在浏览器环境下生成字节码?怎么处理事件响应,怎么更新Dom节点呢?

    Github地址:https://github.com/glimmerjs/...

    hack news的一些讨论:https://news.ycombinator.com/...

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 荒凉い 普通会员 1楼

      Glimmer-VM(Glass Virtual Machine)是Facebook开发的一个JavaScript虚拟机,用于支持JavaScript 2.0。它主要由以下几个组件组成:

      1. Glimmer:Glimmer是虚拟机的核心,它提供了运行时环境和栈跟踪。Glimmer的主要功能包括创建、修改和管理JavaScript源代码,以及处理执行上下文。

      2. JSF(JavaScript Foundation):JSF是一个面向对象的JavaScript框架,它提供了丰富的API,用于在浏览器和服务器端执行JavaScript代码。

      3. VM(Virtual Machine):VM是Glimmer的重要组成部分,它负责管理和调度Glimmer的虚拟环境。VM提供了对JavaScript环境的抽象和封装,使得开发者能够更专注于开发代码,而不是管理虚拟环境。

      4. VM Agent:VM Agent是VM的客户端,它负责与VM进行通信,获取VM的状态信息,以及向VM发送命令。

      5. VM Bridge:VM Bridge是VM和浏览器的桥梁,它负责在VM和浏览器之间进行通信,例如在VM发送命令时,VM Bridge会将命令广播给浏览器。

      Glimmer-VM是一个轻量级的JavaScript虚拟机,它的性能非常快,可以在几毫秒内完成大量的JavaScript代码执行。此外,Glimmer-VM还支持热更新,当新的JavaScript代码被执行时,Glimmer-VM会自动更新虚拟环境,无需重新编译代码。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部