Toomany DOM更新

时间:2017-12-29 14:44:53

标签: scala performance dom scala.js binding.scala

链接[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编写的代码是否需要优化?
  4. DomListener ScreenShot

1 个答案:

答案 0 :(得分:4)

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

根据Scaladoc for bind method

  

每次值更改时,在当前@dom方法中,将重新评估当前bind表达式之后的所有代码

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

我创建了a pull request来改变class属性,避免在XHTML文字之前调用calc.bind