Elm img元素的强制重画
我的Elm应用程序允许用户旋转图片:单击屏幕上的图片时,Elm会调用API来旋转服务器上的图片文件。接下来,我希望旋转后的图像显示在浏览器中 但是虚拟DOM根本没有改变,因为img节点具有相同的src URL。有没有办法强制重新创建imgElm img元素的强制重画,elm,virtual-dom,Elm,Virtual Dom,我的Elm应用程序允许用户旋转图片:单击屏幕上的图片时,Elm会调用API来旋转服务器上的图片文件。接下来,我希望旋转后的图像显示在浏览器中 但是虚拟DOM根本没有改变,因为img节点具有相同的src URL。有没有办法强制重新创建img 当然,我可以使用设置关键帧的节点或修改img上的某些属性来强制重画,但这将意味着向我的模型添加一些在旋转时修改的内容。这是可能的,但不是很优雅。您希望在旋转时修改某些内容:即图像。因此,当您希望旋转发生时,您将在模型中进行更改。我会让API的响应在模型中增加一
当然,我可以使用设置关键帧的节点或修改img上的某些属性来强制重画,但这将意味着向我的模型添加一些在旋转时修改的内容。这是可能的,但不是很优雅。您希望在旋转时修改某些内容:即图像。因此,当您希望旋转发生时,您将在模型中进行更改。我会让API的响应在模型中增加一个计数器(或者使用当前时间via),然后根据该值使用缓存破坏查询参数更新图像URL。关于缓存破坏查询参数的更多详细信息如下:我认为您基本上是正确的,因此问题变成了要添加哪种状态。也许最合适的是与http请求状态相关的内容,因为您可能还需要其他效果来让用户知道正在进行的更改,例如让原始版本和旋转版本共享相同的URI,这是一种很好的方法,可以通过在多个级别(而不仅仅是DOM/浏览器)缓存而受挫。我建议使用查询参数作为区分标准。谢谢大家。我就是这样做的。在查询字符串参数中使用时间戳。两者都会更改模型并“破坏”缓存。