利用HTTP-1.1-chunk输出优化加载速度

技术文档网 2021-04-26

Chunk 模式在页面加载性能优化中应用最广泛的要属 Facebook 的 Bigpipe 了。在移动端上,使用 Bigpipe 可能会有以下顾虑:

  • 使用 JS 渲染 Pagelet 是否会有性能问题
  • Pagelet 乱序输出是否会影响体验

退化 Bigpipe,利用 Server 按照页面从上到下切分并输出 Pagelet,就可以解决以上问题。当然这会带来很大的局限性,Pagelet 不能嵌套,且几乎必须是 body 的直接后代。进行优化时,可按照具体情况进行取舍,这里要重点关注的是利用 chunk 节约静态资源加载时间。

我们知道,一个Pagelet可以有它专用的静态资源(css、js等),往往,这些静态资源是作为依赖配置在 Pagelet 中,然后由 JS 进行动态异步加载。那么是否可以有这样一种模式:Server 先行输出静态资源,让浏览器先行下载,然后再去数据库查询数据并组装后发给浏览器渲染 DOM,这样,静态资源下载与数据库查询就是并行的了。

Database ----------------------------
                    /      \
                   / query  \
                  /          \
Server   ----------------------------
            /   \                 \
   request /     \<link>           \<div>
          /       \                 \
Browser  -------------------------------

相关文章

  1. supervisor使用教程

    一、安装 1:easy_install 安装: easy_install supervisor 2:pip 安装: pip install supervisor 3:Debian / Ubuntu

  2. gitlab的ssh key不生效的问题

    在用 gitlab 的管理代码时发现一个问题:如果用 http 协议,每次 push 的时候都需要输入用户名和密码,如果 用 ssh 协议,先要生成公钥: ssh-keygen -t rsa -C

  3. UOJ安装指南

    这是一个UOJ的docker版本。在安装之前,请确认Docker已经安装在您的操作系统中。这个docker的映像是64位的版本,在32位的系统上安装可能会出现错误。 安装 请先下载 JDK7u76

  4. untu14.04下创建用户并赋予执行sudo命令的权限

    untu14.04下创建用户并赋予执行sudo命令的权限 创建用户:adduser +用户名(该命令在home下生成用户目录并创建用户) 1. 切换到root用户下 2. /etc/sud

  5. 如何查看当前apache的工作模式prefork worker还是event模式?

    查看apache工作模式 $ apachectl -V (注:apachectl可理解为apache control,其实是一段bash脚本) Server version: Apache/2.4.

随机推荐

  1. supervisor使用教程

    一、安装 1:easy_install 安装: easy_install supervisor 2:pip 安装: pip install supervisor 3:Debian / Ubuntu

  2. gitlab的ssh key不生效的问题

    在用 gitlab 的管理代码时发现一个问题:如果用 http 协议,每次 push 的时候都需要输入用户名和密码,如果 用 ssh 协议,先要生成公钥: ssh-keygen -t rsa -C

  3. UOJ安装指南

    这是一个UOJ的docker版本。在安装之前,请确认Docker已经安装在您的操作系统中。这个docker的映像是64位的版本,在32位的系统上安装可能会出现错误。 安装 请先下载 JDK7u76

  4. untu14.04下创建用户并赋予执行sudo命令的权限

    untu14.04下创建用户并赋予执行sudo命令的权限 创建用户:adduser +用户名(该命令在home下生成用户目录并创建用户) 1. 切换到root用户下 2. /etc/sud

  5. 如何查看当前apache的工作模式prefork worker还是event模式?

    查看apache工作模式 $ apachectl -V (注:apachectl可理解为apache control,其实是一段bash脚本) Server version: Apache/2.4.