代码之家  ›  专栏  ›  技术社区  ›  7hibault

为什么自包含的htmlwidget比htmlwidgets.org示例页面大得多?

  •  1
  • 7hibault  · 技术社区  · 7 年前

    将 html widgets示例页的大小与自包含的html widget的大小进行比较:

    • 检查示例页面时,整个页面的总大小为717KB

    • 当生成一个独立的HTML小部件时,我得到一个大约3MB的页面,其中只包含小部件
      • 生成HTML小部件的代码 图书馆(ggplot2) 图书馆 库(htmlwidgets) P<-ggplot(数据=钻石,aes(x=切割,填充=清晰度))。+ 风水酒吧(position=“dodge”) P<-G策略(P) htmlwidgets::savewidget(p,“path/to/my/widget.html”,self-contained=true) < /代码>

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

        注意:我正在考虑生成一个非独立的HTML页, spliting the page to get the data ,and serving the *.min.js files but the aggregated JS files still added up to a dium MB.

        • 检查示例页面时,整个页面的总大小为717KB

        htmlwidgets page load perf

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

        htmlwidgets save perf

        # 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应用程序提供HTMLWidgets,因此这些widgets的大小是一个问题。为什么自包含的htmlwidget比htmlwidgets.org示例页面大得多?我能做点什么来改变吗?

        注意:我正在考虑生成一个非自包含的HTML页面, splitting the page to get the data 服务于 *.min.js 文件,但聚合的JS文件仍会增加到几MB。

    1 回复  |  直到 7 年前
        1
  •  3
  •   zacdav    7 年前

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

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

    要验证这一点,您可以从提供的示例链接下载该版本,它将占用大约1.7 MB的存储空间。这是不一样的,但是我看到的本地生成的版本和示例网页上的r有许多不同的版本(例如: plotly.js v1.16.3 ,my r: v1.39.2 ),因此它很可能归因于plotly开发了相当多的版本之间的间隔(文件具有版权日期范围,maximuMS为2016年和2018年)。

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

    数据到了。

    inspect files gzip

    我以你为例,数据大小的最大问题似乎是 plotly-latest.min.js ,磁盘上的存储空间约为2.8 MB。

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

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