[问题] Shiny可以在运算未完成时于UI提示吗?

楼主: clsmbstu   2017-08-21 22:43:00
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
我最近做了一只Shiny程式,但它需要的运算耗时比较久,
(而且在shinyapps.io上花的时间比我在本地长很多...)
好奇有没有可能在UI里面加一行提示(例如“运算中,请稍候”之类的),
而且只在结果还没出来时才有那一行?
我知道也许长期目标是让我的程式码更有效率一点,
但目前我还想不到改写的方式。 orz
[程式范例]:
ui <- fluidPage(
# Other UI elements
conditionalPanel(condition = "output.done == 'FALSE'",
helpText("运算中,请稍候"))
)
server <- function(input, output) {
output$done <- reactive({"FALSE"})
# Complicated processes
output$done <- reactive({"TRUE"})
outputOptions(output, "done", suspendWhenHidden = FALSE)
}
[关键字]:
shiny, dynamic UI
作者: celestialgod (天)   2017-08-22 00:28:00
关键字 showModal shiny或是勇shinyBS,不过个人不推shinyBS::bsModal 一年前用有一些问题,不确定现在有没有改善,但是多数功能 shiny showModal就可以解决
楼主: clsmbstu   2017-08-22 01:51:00
感谢!再找时间来玩玩看~
作者: cywhale (cywhale)   2017-08-22 09:15:00
withProgress in shiny https://goo.gl/fA23za
楼主: clsmbstu   2017-08-22 10:37:00
这个也好棒!大感谢!细读之后发现我的状况withProgress提供的帮助有限因为我最花时间的地方是leaflet::addPolygons而非循环我试过把地图绘制的pipeline切开来并在中间放incProgess但诡异的是进度条跑满了,图还是要再等一阵子才会出来
作者: cywhale (cywhale)   2017-08-23 01:05:00
不是可以 withProgress(message=... {..(Your processes)..leaflet %<>% addPolygons() })
楼主: clsmbstu   2017-08-23 22:30:00
感谢!我也有查到leafletProxy,但我是主观猜测应该帮助不大,毕竟我每次更换输入就是要重画超过350个polygons而前面只是做到addTiles而已 QQ
作者: locka (locka)   2017-08-23 23:14:00
请问clsmbstu大大是在一个addPolygons()里超过350个多边形(例如全台乡镇)还是addPolygons()执行350次啊??
楼主: clsmbstu   2017-08-23 23:40:00
是前者喔 我就是在画全台乡镇 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com