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

Shiny 如何延迟向服务器端发送小部件的数据(等待小部件输入的潜在变化),shiny,Shiny,我有一些小部件可以在很短的时间内接收大量用户输入。 例如,一个带有多个选项的selectInput,用户可以非常快速地点击它 这会导致对应用程序的服务器端进行不必要的调用 有没有办法在小部件将其新数据发送到服务器之前设置延迟?在应用程序方面或在每个小部件的基础上 我想这会要求javascript中有一些“setTimeout”和“cleartimout” 如果本机无法提供,我有什么选择 我已经使用编写了一些自定义小部件,但我不想重新发明轮子,也不想克隆本机小部件,因为这将迫使我跟踪小部件的新版本

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

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

有没有办法在小部件将其新数据发送到服务器之前设置延迟?在应用程序方面或在每个小部件的基础上

我想这会要求javascript中有一些“setTimeout”和“cleartimout”

如果本机无法提供,我有什么选择

我已经使用编写了一些自定义小部件,但我不想重新发明轮子,也不想克隆本机小部件,因为这将迫使我跟踪小部件的新版本并相应地更新克隆

有没有一种方法可以扩展现有的小部件,只覆盖其中的一部分(将新输入发送到服务器端的部分),并继续获取现有小部件的更新

另一种选择是让小部件在每次小部件发生更改时发送其更新的输入,但告诉服务器在处理它之前等待,以防出现新的输入。那对我来说也行


注意:我不想使用observeEvent/eventReactive

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