10avalon - vm运作原理

简介: 10avalon - vm运作原理

avalon之所以使用Proxy, Object.defineProperty或VBScript来构造vm,那是因为它们创建出来的对象有一种自省机制,能让我们得知vm正在操作或访问了我们的对象。


对于Object.defineProperty或VBScript,主要是靠将普通属性变成访问器属性。访问器属性内部是拥有两个方法,setter与getter。当用户读取对象的属性时,就将调用其getter方法,当用户为此属性赋值时,就会调用setter方法。因此,我们就不需要像angular那样,使用脏检测,就得知对象被修改了某些属性了。 并且能准确得知那些属性,及时地同步视图的相应区域,实现最小化刷新视图。


插值表达式里的内容 与 ms-* 的属性值 都会转换求值函数, 比如说 变成function(){return vmodel.aaa}ms-attr="{title: @name}" 变成 function(){ return {title: vmodel.name} } 此外,请不要出现 @aaa[@bbb].ddd, @eee[ddd], 可能导致依赖收集失败, 无法更新对应区域


对于Proxy(智能代理),这最早发迹于firefox4,现在许多新浏览器都支持,它能监听外部用户对它的14种,比如说读写属性,调用方法,删除旧属性,添加新属性,被for in循环, 被in关键字进行存在性检测, 被new……因此之前所说的,不能监听没预先定义的属性, 这个难题被Proxy搞定了

目录
相关文章
|
8月前
|
Oracle Java Serverless
JVM工作原理与实战(三十六):GraalVM虚拟机
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了GraalVM、GraalVM的两种运行模式、GraalVM应用场景、参数优化和故障诊断等内容。
380 1
09avalon - vm是如何作用视图
09avalon - vm是如何作用视图
61 0
|
8月前
|
存储 监控 安全
深度剖析Linux进程的内部机制:一探/proc/pid的奥秘
深度剖析Linux进程的内部机制:一探/proc/pid的奥秘
1249 0
VM常见问题解决方案
VM常见问题解决方案
297 0
VM常见问题解决方案
MeeGo开发“.NET研究”进程通信核心 DBus调试工具
  我们讲过用QML语言开发MeeGo应用程序,在MeeGo开发中,DBus是MeeGo进程通信的核心。我们简要的看一下MeeGo系统的哪些地方都使用了DBus.   1.从一个应用中启动另一个应用时。
1416 0
|
监控
一起谈.NET技术,StreamInsight 浅入浅出(六)—— Debugger
  对于 StreamInsight 系统,由于对事件的处理查询都是异步进行的,输入输出很难进行时序上的对应监测,所以普通的基于代码的 Debug 和 Watch 显得不那么有意义。于是微软随 StreamInsight 系统提供了一个好用的图形化调试工具 StreamInsight Event Flow Debugger。
1135 0
|
Java 关系型数据库 Oracle

热门文章

最新文章