如何在Shiny

时间:2018-05-22 14:00:44

标签: shiny

我注意到我的APP的GUI组件尝试同时显示所有内容,如果显示速度很慢(我的计算机只有两个处理器),它们会同时显示并且无序。我想知道是否有一种方法来控制GUI组件的显示顺序,如果某些小部件显示缓慢,则让其他小部件显示等到前一个完成。另外,我发现在我的2处理器计算机中,如果一个函数需要花费大量时间,那么任何其他以前的GUI组件都不会显示,而长函数似乎会占用处理器。我不太了解这一点,但是如果所有功能都被加载并且竞争资源。有没有办法控制程序的执行顺序?感谢。

1 个答案:

答案 0 :(得分:0)

我提出强制执行(粗略)执行顺序的最佳方法是自由使用req函数。来自?req

  

确保之前可以使用值(" truthy" -see Details)   进行计算或行动。如果任何给定值是   不是真的,通过提高"沉默"例外   (未通过Shiny记录,也未在Shiny应用程序的UI中显示)

您可以使用req要求第一个窗口小部件已完成(通过检查它的预期输出,或使用变量作为first_widget_done标志),然后再继续第二个窗口小部件小部件的代码。

RE:Truthy:

  

条款" truthy"和" falsy"一般表明是否有价值,   当被强制为逻辑时,为TRUE或FALSE。

as.logical(0)   # FALSE
as.logical(1)   # TRUE