2

链接 [ https://ccamel.github.io/playground-binding.scala/index.html#playground-binding.scala/home] 几乎没有 binding.scala 的演示 我在 chrome 中使用 DomListner 扩展来了解 dom 事件. 我发现每次交互都会触发数百个 DOM 事件。例如,单击计算器按钮会产生 114 个事件。

  1. 这是性能问题吗?
  2. binding.scala 库是否需要性能改进?
  3. 使用 binding.scala 编写的代码是否需要优化?

DomListener 截图

4

1 回答 1

4

这是预期的行为,因为您提到的 DEMO 明确地重新创建了锚元素。

根据Scaladoc forbind方法

每次值变化时,在当前@dom方法中,当前表达式之后的所有代码bind都会重新计算

结果,此处calc.bind的调用强制重新创建锚元素。


我创建了一个拉取请求来更改class属性,方法是避免calc.bind在 XHTML 文字之前调用。

于 2017-12-29T18:08:06.877 回答