2015-07-22 44 views
5

我需要使用Shiny Server部署ShinyApp。要運行,我的應用程序需要來自.RData文件(〜300 Mo)的數據。此.RData文件將加載load(...)語句,位於global.R文件中。 計算機的功能,加載可能需要幾分鐘,對用戶不友好。R:只加載一次.RData在已部署的ShinyApp中

如何才能使.RDate文件只加載一次,以便每個新用戶不需要重新加載.RData文件?

謝謝。

回答

2

如果您在global.R中加載對象,那麼只需加載一次即可。第一個用戶之後的每個用戶應該可以快速訪問您的應用程序。

如果您正在本地開發您的應用程序,您可以通過以下方式測試我在說什麼。例如,開始您的應用程序,例如,

runApp(port=5050) 

只是爲了設置端口。您的瀏覽器需要一些時間才能顯示該應用程序。加載後,請記下您的應用程序的地址(應爲127.0.0.1:5050),關閉應用程序的瀏覽器選項卡(但不要停止R!),打開一個新選項卡並將上面的地址放在地址欄中。現在,訪問您的應用程序應該非常快。

這只是說,只要閃亮啓動並運行,global.R中的命令將在開始時執行,並將其評估放入R全局環境中。任何時候用戶連接到應用程序都不會執行它們。

請注意,如果使用compress=FALSE參數保存Rdata,則可以加速加載Rdata。這樣,你的文件會更大,但加載速度會更快。

+0

很好的幫助!我嘗試了基於'runApp(port = 5050)'的經驗,它工作得很好!這可能是顯而易見的,但'session $ onSessionEnded(function(){stopApp()})'不能在'server.R'中,以便它能夠正常工作....也感謝'compress = FALSE':非常有用。 – JPL