2015-07-22 5 views
5

Мне нужно развернуть ShinyApp с Shiny Server. Для запуска моего приложения нужны данные из файла .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. Они не выполняются в любое время, когда пользователь подключается к приложению.

Считайте также, что вы можете ускорить загрузку Rdata, если вы сохраните ее с аргументом compress=FALSE. Таким образом, ваш файл будет больше, но загрузка будет быстрее.

+0

Отличная помощь! Я пробовал опыт на основе 'runApp (port = 5050)', и он работал очень хорошо! Это может быть очевидно, но 'session $ onSessionEnded (function() {stopApp()})' musn't не находится в 'server.R', так что он работает .... Спасибо также за' compress = FALSE': very полезно. – JPL

 Смежные вопросы

  • Нет связанных вопросов^_^