scala - Binding.scala:定义变量长度的策略

标签 scala scala.js binding.scala

这与 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/

相关文章:

scala - 如何从 Spark 中的数组列中选择字段的子集?

scala - 关于 Spark 的 RDD 的 take 和 takeOrdered 方法

scala - 在运行时获取 Akka HTTP 的版本

scala.js - ScalaJS 发出 EmberJS 代码?

binding.scala - 如何设置tabindex属性

parsing - Scala 解析器组合器 : how to return the content of intermediate parsers when combined with "into"?

image - 使用 scala.js 在 Canvas 上加载和显示图像

node.js - 在 ScalaJs sbt 构建中,使用 webjars 而不是 npm 或 bower 与 'Provided' 有什么优势吗?

javascript - 在 ScalaJS 中访问 JS 对象的嵌套属性

html - 如何在不将绑定(bind)片段包装在 XML 文字中的情况下组合绑定(bind)片段