【问题标题】:Why is the self-contained htmlwidget so much bigger than the htmlwidgets.org example page?为什么自包含的 htmlwidget 比 htmlwidgets.org 示例页面大得多?
【发布时间】:2018-11-20 17:11:25
【问题描述】:

比较html widgets example page的大小和一个独立的html小部件的大小:

  • 检查示例页面时,整个页面总共有 717KB

  • 在生成一个独立的 html 小部件时,我得到一个大约 3MB 的页面,其中只包含小部件

# Code to generate the html widget
library(ggplot2)
library(plotly)
library(htmlwidgets)
p <- ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
  geom_bar(position = "dodge")
p <- ggplotly(p)
htmlwidgets::saveWidget(p, "path/to/my/widget.html", selfcontained = TRUE)

我正在尝试通过 HTTP API 将 htmlwidgets 提供给 Web 应用程序,因此这些小部件的大小是一个问题。为什么自包含的 htmlwidget 比 htmlwidgets.org 示例页面大得多?我可以做些什么来改变它吗?

注意:我正在考虑生成一个非独立的 html 页面 splitting the page to get the data,并提供 *.min.js 文件,但聚合的 js 文件仍然加起来只有几 MB。

【问题讨论】:

  • 您还有什么需要添加到答案中的吗?

标签: r htmlwidgets


【解决方案1】:

您在检查时看到的数字较低,因为文件是使用 gzip 压缩进行压缩的,即数据到达后压缩。

我已经运行了您的示例,数据大小的最大问题似乎是 plotly-latest.min.js,它在磁盘上占用了大约 2.8 MB 的存储空间。

要验证这一点,您可以从您提供的示例链接下载该版本,它将占用约 1.7 MB 的存储空间。这不一样,但是我在本地生成的版本和示例网页上的 R 版本相差很多(例如:plotly.js v1.16.3,我的 R:v1.39.2),所以它可能归因于情节发展相当版本之间似乎有 2 年的差距(文件具有版权日期范围,最大值为 2016 年和 2018 年)。

就尝试减少文件大小的负担而言,我最好的猜测是您将要使用的 HTTP API 可以提供相同的 gzip 编码。没有其他方法可以传输更少的数据,除非您可以将不需要的文件作为后期处理进行修剪,确定这些将是一个探索性的过程。

【讨论】:

  • 我认为你是对的。我不太确定为什么我没有想到这一点...谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 2011-02-24
  • 2012-03-15
  • 2016-01-26
相关资源
最近更新 更多