Слишком много обновлений DOM

Ссылка [https://ccamel.github.io/playground-binding.scala/index.html#playground-binding.scala/home] содержит несколько демонстраций binding.scala. Я использовал расширение DomListner в chrome, чтобы понять события dom. Я обнаружил, что для каждого взаимодействия запускаются сотни событий DOM. Например, один клик по кнопке калькулятора приводит к 114 событиям.

  1. Это проблема производительности?
  2. Нуждается ли библиотека binding.scala в повышении производительности?
  3. Нуждается ли код, написанный с помощью binding.scala, в оптимизации?

Скриншот DomListener


person kiran.kumar M    schedule 29.12.2017    source источник


Ответы (1)


Это ожидаемое поведение, потому что DEMO, о котором вы упомянули, явно воссоздает элементы привязки.

Согласно Scaladoc для метода bind:

Каждый раз, когда значение изменяется, в текущем методе @dom весь код после текущего выражения bind будет переоцениваться.

В результате вызов calc.bind по адресу здесь вызывает повторное создание элемента привязки.


Вместо этого я создал запрос на включение, чтобы изменить атрибут class, избегая вызов calc.bind перед литералами XHTML.

person Yang Bo    schedule 29.12.2017