如何延迟将小部件的数据发送到服务器端(等待小部件输入的潜在变化)

时间:2017-03-30 04:59:37

标签: shiny

我有一些小部件可以在很短的时间内收到大量的用户输入。 例如。具有多个选择的selectInput,用户可以非常快速地点击很多

这会导致对Shiny应用程序的服务器端进行不必要的调用。

有没有办法在窗口小部件将新数据发送到服务器之前设置延迟?无论是应用程序还是基于每个小部件。

我想这会要求一些' setTimeout'和' clearTimeout'在javascript中。

如果那本地不可用,我的选择是什么?

我使用http://www.htmlwidgets.org/编写了一些自定义小部件,但我不想重新发明轮子而且我不想复制原生小部件,因为这会迫使我跟踪小部件的新版本并相应地更新克隆。

有没有办法扩展现有的窗口小部件并仅覆盖它的某些部分(将新输入发送到服务器端的部分),并继续获取此现有窗口小部件的更新?

另一种选择是让小部件每次在小部件上发生更改时发送更新的输入,以便在处理之前告诉服务器等待,以防新的输入进入。这对我也有用

注意:我不想使用observeEvent / eventReactive

1 个答案:

答案 0 :(得分:0)

如果您能够使用JavaScript,那么我建议使用存储在变量中的setInterval循环。我觉得它们在间隔运行功能时非常方便,你可以同时运行多个循环并调整时间以获得最佳性能,因为你也可以关闭并启动新的循环。希望这可以帮助。