如何啓動一個Shiny應用
在前兩篇文章裏[1,2],你已經可以通過調用runApp()函數來運行樣例應用了。這個函數運行了應用並將它在你的默認瀏覽器裏顯示了出來。這個函數的調用是模塊化的(blocking?),這意味着當應用運行的時候你就不能使用控制檯了。
要想停止應用的運行你只需要在R裏打斷就行了,在R前端可以使用Ctrl+C,在RStudio裏可以按下Esc鍵,或者點擊你的R環境裏提供的停止鍵(Stop)。
在隔離的進程裏運行應用
如果你不想被運行的Shiny應用阻擋你使用控制檯,你也可以在一個隔離的進程裏運行應用。要想這樣做,你可以打開一個終端(Terminal)或控制檯窗口並運行下面的代碼,把~/shinyapp重新放在你應用的路徑裏:
R -e "shiny::runApp('~/shinyapp')"
在開啓一個應用的時候,runApp()默認爲這個應用指定一個隨機的接口。比如說,它也許會在接口4700上啓動這個應用,這樣的話你就可以在瀏覽器裏通過http://localhost:4700這個地址連接到已經啓動的應用了。
在其他的一些文章裏,我們會討論到一些關於調試Shiny應用的技術,包括停止應用的執行和檢查當前環境等。要想實現這些功能,你需要在一個隔離的終端對話裏運行,需要從一個交互式的R對話裏調用runApp(),而不是用這裏提到的方法。
實時重載
當你對ui定義或者server腳本進行更改的時候,並不需要停止再重啓應用來查看這些變化,只要保存更改然後重載頁面就可以了。
這樣做的一個條件是:當瀏覽器重載的時候,Shiny會準確地檢查app.R文件的時間戳來確認是否需要重新執行source()。Shiny並不能檢查到其他腳本或數據文件的改變,所以當你需要更改這些文件的時候,就得進行停止再重啓應用了。