我想知道应用模式何时可能发生变化。
具体来说,这样的代码是否保证是正确的?
onClick <| UpdateModelVersionMessage (model.version + 1)
也就是说,在呈现UI组件,注册和调度事件之间,是否有其他更新模型以使UpdateModelVersionMessage
值过期? Javascript的并发模型让我相信我是安全的。但是Elm正在做或者榆树可能会做一些像批量/重新排序消息的事情吗?
答案 0 :(得分:5)
我被告知,截至0.18:
视图通过requestanimationframe异步呈现,因此,不,它不安全。
但是:
在0.19中,html事件将触发同步重新渲染,因此不会出现问题
最后:
Requestanimationframe以60fps运行,因此使用过时模型发送事件的窗口非常小 即最多16毫秒,假设你的视图可以在一个帧内渲染(如果它不能,则这是一个不同的问题)
所以在这种情况下,我建议做一些可能有效的最简单的事情,知道它出错的可能性非常苗条,并且知道在0.19中,视图可以重新开始 - 同步 - 防止这是一个可能的问题
感谢伊利亚斯(https://github.com/zwilias)的答案。