[分享] R shiny web app 一些經驗雜談

看板R_Language作者 (cywhale)時間7年前 (2018/01/11 14:27), 編輯推噓7(702)
留言9則, 8人參與, 7年前最新討論串1/2 (看更多)
分享自己寫的shiny app 主題是海洋浮游動物的生態資料庫查詢 在這就不介紹生態上的議題,主要分享技術上心得可供參考 http://bio.odb.ntu.edu.tw/query/ 資料連結部分... shiny-server 和 PostgresSQL資料庫可架在不同server,在UI 完成篩選條件後, 抓資料的function寫成內部使用的package,經由Opencpu API 去抓使用者要的資料, 抓完即斷掉和資料庫連結。 Opencpu API作法參考 https://www.opencpu.org/posts/scoring-engine/ Opencpu server可在Apache 和 Nginx屏蔽成內網使用。用此做法在shiny-server session中,不需要持續和資料庫保持連結。 Async... 另一個好處是預先要抓的資料,可以丟進 future::future() (以及其他讀外部檔等工作) 讓shiny-server繼續完成其他UI要做的事,等到需要render資料時才用future::value() 叫用出來。這樣減少一些lag.. 順提,前日在Hadley twitter讀到他介紹 RPostgres 相對於RPostgresql這個 目前使用的package的優勢,包括會自動清除佚失的連結,與query速度較快。之後應該會 改用看看~~ https://github.com/r-dbi/RPostgres Loading... 網頁一開始會慢的一部分原因都在掛載的javascript and css,這在nginx中若設 js | css 的cache, 網站都會出錯。但可以把這些倚賴的資源放在CDN上, 參考做法:https://goo.gl/fum9Ji 可以看到重複連結網站時,掛載在CDN上的resource都是取用被cache的,速度就會提升。 其實遇到很多問題,都靠孤狗大神一個個解決。我列了我使用到的package在這,其他有 機會再續談。 http://bio.odb.ntu.edu.tw/index_tech_citations.html 以上做法可能都有其他更好、更快的方式,目前這樣做僅供參考,也歡迎討論。 (如果您有使用此網站,使用經驗上好或不好的地方,或有其他細節要聯絡, 敬請告知或透過網頁上email聯絡。) [關鍵字]: Shiny-server, API, Database -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.65.48 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1515652042.A.479.html

01/11 16:15, 7年前 , 1F
01/11 16:15, 1F

01/11 21:46, 7年前 , 2F
推,但是我建議使用shiny的時候,就不要太在意效能了 XD
01/11 21:46, 2F

01/11 21:46, 7年前 , 3F
只要可以接受就好。真的要讓網站很順,換語言就對了
01/11 21:46, 3F

01/11 22:33, 7年前 , 4F
推推.
01/11 22:33, 4F

01/11 22:54, 7年前 , 5F
其實也就只是試看看自己較常用的R可以做到什麼地步:p^^
01/11 22:54, 5F

01/12 07:20, 7年前 , 6F
感謝分享
01/12 07:20, 6F

01/12 08:40, 7年前 , 7F
01/12 08:40, 7F

01/15 21:10, 7年前 , 8F
謝謝分享.
01/15 21:10, 8F

02/01 01:27, 7年前 , 9F
02/01 01:27, 9F
文章代碼(AID): #1QLmFAHv (R_Language)
文章代碼(AID): #1QLmFAHv (R_Language)