发生错误时自动重新加载闪亮的应用程序

时间:2018-01-04 11:13:22

标签: r shiny

这是我之前提问Automatically reloading shiny app when add changes的后续内容。

当您想要自动查看放在代码中的浏览器上的更改时,解决方案options(shiny.autoreload = TRUE)非常有用。

但是,保存未完成/损坏的文件时会出现潜在问题。例如,以下ui代码在,函数后缺少titlePanel符号:

fluidPage(

  titlePanel("Old Faithful Geyser Datass")
  sidebarLayout(...

保存此类文件时,您的浏览器会出现错误

ERROR: Error sourcing your_path/ui.R

R控制台将帮助检测,符号的问题。我的印象是,如果我改进代码并保存文件,它应该reload浏览器并正确显示我的应用程序。不幸的是,它没有这样做。

有趣的是,应用程序中的错误不会终止与浏览器的连接。要确认我的话,只需使用浏览器中的重新加载按钮手动重新加载应用程序(在改进代码之后)。

Therofore,我检查了这个shiny.autoreload选项的工作原理。正如我所料,它检查了文件修改的时间,然后执行reload功能。然后reload函数通过sendMessageaddMessageHandler发送消息:

addMessageHandler('reload', function(message) {
  window.location.reload();
});

所以似乎在改进你的代码之后应该重新执行该函数,但它不会发生。

总结一下,我认为如果没有shiny的重大变化就不可能改变它,但也许我错了。谢谢你的任何建议。

PS。您可以操作示例代码here来查看问题。

0 个答案:

没有答案