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