为什么独立的 htmlwidget 比 htmlwidgets.org 示例页面大这么多?

Why is the self-contained htmlwidget so much bigger than the htmlwidgets.org example page?

html widgets example page 的大小与独立的 html 小部件的大小进行比较:

# 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 向 Web 应用程序提供 html 小部件,因此这些小部件的大小是一个问题。为什么独立的 html 小部件比 htmlwidgets.org 示例页面大这么多?我可以做些什么来改变它吗?

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

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

我有 运行 你的例子,数据大小的最大违规者似乎是 plotly-latest.min.js,它在磁盘上占用 ~2.8 MB 的存储空间。

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

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