应用模型何时可以更改?

时间:2017-09-19 13:44:03

标签: elm

我想知道应用模式何时可能发生变化。

具体来说,这样的代码是否保证是正确的?

onClick <| UpdateModelVersionMessage (model.version + 1)

也就是说,在呈现UI组件,注册和调度事件之间,是否有其他更新模型以使UpdateModelVersionMessage值过期? Javascript的并发模型让我相信我是安全的。但是Elm正在做或者榆树可能会做一些像批量/重新排序消息的事情吗?

1 个答案:

答案 0 :(得分:5)

我被告知,截至0.18:

  

视图通过requestanimationframe异步呈现,因此,不,它不安全

但是:

  

在0.19中,html事件将触发同步重新渲染,因此不会出现问题

最后:

  

Requestanimationframe以60fps运行,因此使用过时模型发送事件的窗口非常小   即最多16毫秒,假设你的视图可以在一个帧内渲染(如果它不能,则这是一个不同的问题)
  所以在这种情况下,我建议做一些可能有效的最简单的事情,知道它出错的可能性非常苗条,并且知道在0.19中,视图可以重新开始 - 同步 - 防止这是一个可能的问题

感谢伊利亚斯(https://github.com/zwilias)的答案。