这与 binding-scala-strategy-to-avoid-too-many-dom-tree-updates 有关
在我的项目中 scala-adapters我显示通过 websocket 发送的日志条目。
我无法控制发送了多少条目。因此,如果有很多条目,屏幕会卡住。
我创建了一个 ScalaFiddle 来模拟:https://scalafiddle.io/sf/kzr28tq
限制条目 (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("")
如果您确实需要保留所有数据但想显示一个子集,请使用基于第一个的另一个绑定(bind):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 到 1000).map(_=>Random.nextInt(9)).mkString("")
关于scala - Binding.scala:定义变量长度的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50365483/