首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Threepenny-Gui0.6中重新加载更新的文件?

如何在Threepenny-Gui0.6中重新加载更新的文件?
EN

Stack Overflow用户
提问于 2015-05-15 13:19:55
回答 1查看 154关注 0票数 1

Threepenny (https://hackage.haskell.org/package/threepenny-gui-0.6.0.1/changelog)是这样写的:“loadFile和loadDirectory函数已经被删除,因为我觉得jsStatic选项对于大多数用例来说都足够了。”

我的问题是:,我们如何在没有loadFile?的情况下重新加载在执行过程中更新的映像?

对于Threepenny-gui 0.5,我使用了以下代码:

代码语言:javascript
复制
redraw :: UI.Element -> IORef CompTree -> (Maybe Vertex) -> UI ()
redraw img treeRef mcv
  = do tree <- UI.liftIO $ readIORef treeRef
       UI.liftIO $ writeFile ".Hoed/debugTree.dot" (shw $ summarize tree mcv)
       UI.liftIO $ system $ "dot -Tpng -Gsize=9,5 -Gdpi=100 .Hoed/debugTree.dot "
                          ++ "> .Hoed/wwwroot/debugTree.png"
       url <- UI.loadFile "image/png" ".Hoed/wwwroot/debugTree.png"
       UI.element img # UI.set UI.src url

当使用Threepenny-Gui0.6将jsStatic设置为Just "./.Hoed/wwwroot"时,下面的代码(显然)只显示应用程序启动时已经存在的初始图像:

代码语言:javascript
复制
redraw :: UI.Element -> IORef CompTree -> (Maybe Vertex) -> UI ()
redraw img treeRef mcv
  = do tree <- UI.liftIO $ readIORef treeRef
       UI.liftIO $ writeFile ".Hoed/debugTree.dot" (shw $ summarize tree mcv)
       UI.liftIO $ system $ "dot -Tpng -Gsize=9,5 -Gdpi=100 .Hoed/debugTree.dot "
                          ++ "> .Hoed/wwwroot/debugTree.png"
       UI.element img # UI.set UI.src "static/debugTree.png"
       return ()

我的Threepenny-Gui0.5的完整代码在这里:https://github.com/MaartenFaddegon/Hoed/blob/master/Debug/Hoed/DemoGUI.hs

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-16 08:10:06

(作者在此)显然,在删除这些功能时,我没有考虑到您的用例。-如果你愿意的话,我可以把它们加回去,能在github上引起争议吗?

在JavaScript端有多种方法可以在某个URL上重新加载文件。例如,请看问题"Refresh image with a new one at the same url"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30260610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档