前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastRWeb:R网页开发不止Shiny,还有另一种方案!注意文末有彩蛋!

FastRWeb:R网页开发不止Shiny,还有另一种方案!注意文末有彩蛋!

作者头像
Chris生命科学小站
发布2023-02-28 18:44:35
7700
发布2023-02-28 18:44:35
举报
文章被收录于专栏:Chris生命科学小站五年归档

最近因为有开发需求,两个框架都用了用,实际运用比较了一下,有点心得。虽然网络上很多文章分别介绍了Shiny和FastRWeb,但还没有文章比较过二者,很多初学者可能也有这样的疑问,故简单叙述一二,不对的地方请海涵并请教。

相同点:

二者都可以响应TCP/IP请求,给R安上Server的翅膀,实现Browser to Server的需求。

不同点:

Shiny是RStudio公司开发的一个包包,定位于交互式呈现数据,更加动态,Shiny包内建了Shiny-server,所以在本机运行没有问题,如果你想发布shiny Rscript(也叫Shiny App)到个人网站的话,需要安装shiny-server。

shiny-server

免费的shiny-server不支持用户认证和ssl,意味着你只能用来部署个人小型项目,如果是商业性的项目,必须且不得不购买shiny-server pro了,因为商业项目必然涉及到用户注册和分组策略。

以下截图是shiny-server免费版(也叫Open Source版),RStudio Connect和Shinyapp.io(RStudio公司推出的云服务)的功能比较:

(Shiny-server免费和商业版的比较)

实际使用上看来,有不少SCI文章所提到的数据库是用shiny展示的,实际效果不佳,反应缓慢,如果仅仅是展示数据或简单的R脚本,可以用FastRWeb。

FastRweb

FastRWeb也是一个框架,原理是调用R脚本生成图片后用base64回传,适合展示没有很强交互需求的图像,比较适合数据挖掘相关的图表。

当然,简单的交互通过传参也是可以实现的,但毕竟免费,缺少维护力量,颜值不如shiny那样高,如果要做到Shiny那样,那需要继续开发更多的控件,还有更灵活的交互和缓存机制,二次开发成本不小,对于有能力的开发团队还是建议直接把Shiny开源包拿过来二次开发比较划算。

有人肯定还会问,既然FastRWeb可以解释R脚本,那用FastRWeb解释shiny脚本行不行?
答案是:不行。

刚才说了,FastRWeb也是一个框架,shiny也是框架,两个框架封装的类和函数都是不一样,所以没法通用。

如果你是个人应用,需要交互性比较强,比较炫酷,比较fashion,用shiny吧。如果是展示一些来源于固定数据的图形(比如数据挖掘),不需要交互特性,可选FastRWeb,再说了,人家FastRWeb本来名字就叫Fast Interactive Web Framework for Data Mining Using R,侧重的就是用R数据挖掘。

但颜值即正义,Shiny比FastRWeb火太多了,一个证据是,FastRWeb最近两次的小更新居然间隔了5年:

2020/03/10 FastRWeb 1.1-3 released. Mostly bugfixes and support for Windows, with a few small new features.

2015/07/27 FastRWeb 1.1-1 released. Graphics use dataURI instead of temporary files, small bugfixes.

最后一句话,FastRWeb能做的,shiny都能做,但二者对并发请求的处理能力,还有待进一步比较(shiny-server pro允许最多20个用户同时访问,FastRWeb这方面能力不详)。不管是FastRWeb还是shiny,处理静态html页面的能力都不如apache和nginx,如果能把这些软件结合起来运用,效果当然最佳。

如果你打算go bigger,且不打算每年花1万美元购买授权的话,还是趁早放弃shiny吧。

还有很多免费的前端,比如bootstrap,vue.js,还有许多免费的javascript库(比如echarts)能画出shiny一般具有交互功能的美图,比如下面的图:

(这是echarts的demo-1)

(这是echarts的demo-1)

(这是我用echarts随便画的图)

或许go bigger的路上不一定需要shiny,可以考虑利用FastRWeb处理数据,然后再用开源的js库来画图。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Chris生命科学小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相同点:
  • 不同点:
  • shiny-server
  • FastRweb
    • 有人肯定还会问,既然FastRWeb可以解释R脚本,那用FastRWeb解释shiny脚本行不行?
      • 答案是:不行。
      • 如果你打算go bigger,且不打算每年花1万美元购买授权的话,还是趁早放弃shiny吧。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档