作者cywhale (cywhale)
看板R_Language
标题[分享] R shiny web app 一些经验杂谈
时间Thu Jan 11 14:27:20 2018
分享自己写的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://webptt.com/cn.aspx?n=bbs/R_Language/M.1515652042.A.479.html
1F:推 Godkin: 01/11 16:15
2F:推 Wush978: 推,但是我建议使用shiny的时候,就不要太在意效能了 XD 01/11 21:46
3F:→ Wush978: 只要可以接受就好。真的要让网站很顺,换语言就对了 01/11 21:46
4F:推 Edster: 推推. 01/11 22:33
5F:→ cywhale: 其实也就只是试看看自己较常用的R可以做到什麽地步:p^^ 01/11 22:54
6F:推 shiang927: 感谢分享 01/12 07:20
7F:推 sulaxd: 推 01/12 08:40
8F:推 raydai: 谢谢分享. 01/15 21:10
9F:推 wenbuneatble: 推 02/01 01:27