强制重绘 img 元素

Force redraw of img element

我的 Elm 应用程序允许用户旋转图片:单击屏幕上的图片时,elm 会调用 API 来旋转服务器上的图片文件。接下来,我希望旋转后的图像显示在浏览器中。

但是虚拟 DOM 根本没有改变,因为 img 节点具有相同的 src URL。有没有办法强制重新创建 img?

当然,我可以使用 Keyed 节点或修改我的 img 上的某些属性来强制重绘,但这意味着向我的模型添加一些在旋转时修改的东西。这是可能的,但不是很优雅。

想要 在旋转时修改某些内容:即图像。因此,当您希望发生旋转时,您将对模型进行更改。我会从 API 的响应中增加模型中的计数器(或通过 Time.now), and then update the image URL with a cache busting query parameter based on that value. More details on cache busting query parameters are here: Cache busting via params

使用当前时间