Обложка канала

R4marketing | канал Алексея Селезнёва | Язык R

Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.

R4marketing | канал Алексея Селезнёва | Язык R

4 года назад
Открыть в
Кастомизируем экран загрузки Shiny приложения Ранее я рассказывал про пакет shinycssloaders, который позволяет анимировать процесс загрузки отдельных визуальных элементов. Но, иногда сама бизнес логика приложения требует некоторых временных затрат, например ваше приложение обращается по API за данными, далее ждёт ответ, обрабатывает его, и потом уже отображает результат. В таком случае будет полезно настроить окно загрузки приложения, оповещая пользователя о том, какой процесс расчётов в данный момент выполняется. Создать такое окно загрузки можно с помощью пакета waiter. Процесс добавления пользовательского экрана загрузки состоит из трёх шагов: 1. Включите useWaiterв() свой пользовательский интерфейс.
ui = fluidPage(
  useWaiter(),
  titlePanel("{waiter}"),
  h2("Locations of the ISS in the last 10 mins"),
  wellPanel(
    leafletOutput("iss_location")
  ),
  fluidRow(
    column(
      width = 12,
      actionButton(
        "refresh",
        "Refresh App",
        icon = icon("sync")
      ),
      align = "center"
    )

  )
)


2. Добавьте в нужных частях серверной части фукцию waiter_show(). 3. Закройте экран ожидания функцией waiter_hide(). server = function(input, output, session) { observeEvent(input$refresh, { waiter_show( html = HTML(paste(spin_fading_circles(), br(), h4("Retrieving data from API..."))) ) all_positions = map_dfr(get_timestamps(), get_10_positions) waiter_show( html = HTML(paste(spin_fading_circles(), br(), h4("Creating map..."))) ) output$iss_location = renderLeaflet({ m = leaflet(all_positions) m = addTiles(m) m = addMarkers(m, lng = ~iss_longs, lat = ~iss_lats, popup = "Position of the International Space Station") }) waiter_hide() }, ignoreNULL = FALSE ) } Пример работы приведённого кода виден на изображении к посту. Ссылки: - Полный пример кода приложения, приведённого на изображении к посту - Документация к пакету waiter #заметки_по_R