Это связано с связыванием обновлений scala-стратегии-избегать-слишком-много-dom-tree-*
В моем проекте scala-adapters Я отображаю записи журнала, которые отправляются через веб-сокет.
Я не могу контролировать, сколько записей отправлено.Поэтому, если записей много, экран зависает.
Я создал ScalaFiddle для имитации этого: https://scalafiddle.io/sf/kzr28tq
Как ограничить длину записей (Vars) или какова лучшая стратегия для удаления первой записи Vars, если достигнута максимальная длина?
Vars
Пара вариантов:
Если вам не нужно хранить все данные, просто замените их в ListBuffer: https://scalafiddle.io/sf/fsaJbkc/2
if (entries.value.length > display) entries.value.remove(0, entries.value.length - display) entries.value += (0 to 1000).map(_=>Random.nextInt(9)).mkString("")
Если вам нужно сохранить все данные, но вы хотите отобразить подмножество, используйте другое связывание, основанное на первом: https://scalafiddle.io/sf/i75YiYN/2
val displayedEntries = Binding { val allEntries = entries.bind if (allEntries.length > display) allEntries.drop(allEntries.length - display).toList else allEntries.toList }
Без изменений здесь: entries.value += (0 to 1000).map(_=>Random.nextInt(9)).mkString("")
entries.value += (0 to 1000).map(_=>Random.nextInt(9)).mkString("")