前端性能优化实践之 GZIP http2(6)

简介: 前端性能优化实践之 GZIP http2(6)

1、Gzip 经典且实用

网络异常,图片无法展示
|

  • 如何配置 Nginx 启动 Gzip ?
1、mac 安装 homebrew https://brew.sh/
 2、安装 nginx brew i nginx
 3、
复制代码

网络异常,图片无法展示
|

  • 然后 就可 看到配置文件 端口
  • 然后将自己打包的 build 文件夹 放到 nginx 服务器上, 此处 需要将打包 build 放在一个位置,然后 nginx 配置 找到这个地方

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 然后 wq 保存退出

网络异常,图片无法展示
|

  • 刷新页面 localhost:80 非常nice !

网络异常,图片无法展示
|

  • 当前我们看一下  没有压缩的 大小 主要看 bundle.js 文件

网络异常,图片无法展示
|

  • 接下来 就是 配置一下 Gzip 压缩  

网络异常,图片无法展示
|

  • 这个地方 容易敲错 导致不生效 放出来
gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_min_length 1100;
    gzip_proxied any;
    gzip_types
       text/plain
       text/css
       text/js
       text/xml
       text/javascript
       application/javascript
       application/x-javascript
       application/json
       application/xml
       application/rss+xml
       image/svg+xml/javascript;
       gzip_static on;
    gzip_vary on;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
复制代码
  • 压缩后 bundle.js 文件大小 ,非常 nice的进行了 压缩 !

网络异常,图片无法展示
|

  • 还有一个问题 brew-core 有问题 解决一下
  • 安装时 出现 这个问题 怎么解决
    网络异常,图片无法展示
    |

  • 这直接输入这个git config --global --unset http.proxy
  • 问题解决 非常 nice ~

网络异常,图片无法展示
|

2、启用 keep-alive  ? 参数:设置超时时长和最大请求数

网络异常,图片无法展示
|

  • 可以在两个地方 看到这个详细的信息
1、network
 2、终端 命令行 curl -v http://127.0.0.1:80 可以看到请求返回的详细信息
复制代码
  • network

网络异常,图片无法展示
|

  • 终端 命令行

网络异常,图片无法展示
|

  • 我们需要 在 nignx 配置一下

网络异常,图片无法展示
|

  • timeout:指定了一个空闲连接需要保持打开状态的最小时长(以秒为单位)
  • requests:在连接关闭之前,在此连接可以发送的请求的最大值

3、http 资源缓存 ? (重要 蛮多 )

网络异常,图片无法展示
|

  • 重要的部分html 一般进行协商缓存/不缓存,用户需要拿到最新的资源 , js/css 需要进行缓存

网络异常,图片无法展示
|

  • nginx 如何 配置 这个地方 暂时不敲了,配置之后 可看到 对应的缓存时间

网络异常,图片无法展示
|

  • Google 会使用 serviceworker  来帮助缓存

4、 service workers ?

  • 离线存储资源,使得离线后还可访问,会存在 客户端,常规只存储基本的 js css html , 不要存储 mp4 大图片

网络异常,图片无法展示
|

  • 尝试使用 它

create-react-app.dev/docs/making…

直接在 index.js 更改一下配置

网络异常,图片无法展示
|

  • 详细 原理部分 后续 补上

网络异常,图片无法展示
|

5、 http2 的升级 ?

  • 适合场景

网络异常,图片无法展示
|

  • 知乎 挺多的 h2

网络异常,图片无法展示
|

  • 对比 http1 http2 有什么优势?
1、安全性 h1采取文本传输方式 h2 采取二进制传输方式
  2、多路复用,可以同时发起/接受多个请求
  3、server push 
复制代码

1 server push

网络异常,图片无法展示
|

2 多路复用

网络异常,图片无法展示
|

3 二进制传输

网络异常,图片无法展示
|

4 头部压缩

网络异常,图片无法展示
|

  • 多说一句 https

网络异常,图片无法展示
|

  • 如何生成一个 自己的个人签名证书  ssl 证书

敲下面这几个命令

// 辅助得到私钥
openssl genrsa -des3 -passout pass:x -out server.pass.key 2048
// 得到私钥
openssl rsa -passin pass:x -in server.pass.key -out server.key 
// 生成 csr
openssl req -new -key server.key -out server.csr 
openssl x509 -req -sha256 -days 3650 -in server.csr -signkey server.key -out server.crt 
复制代码
  • 敲完之后 就可得到这个

网络异常,图片无法展示
|

  • 需要找到 位置 为下面配置 准备 直接在文件搜索 名称就可拿到 然后时间排序一下
  • 如何配置 nginx 实现 http2 ?
#
    server {
        listen       443 ssl http2;
        server_name  localhost;
        ssl on;
        ssl_certificate      /Users/fhj/Desktop/server/server.crt;
        ssl_certificate_key  /Users/fhj/Desktop/server/server.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   /Users/fhj/Desktop/build;
            index  index.html index.htm;
        }
    }
复制代码

网络异常,图片无法展示
|

  • 有个小插曲

网络异常,图片无法展示
|

  • 页面效果展示  成功使用了 h2 非常的开心 !!!

网络异常,图片无法展示
|

  • 当然 重点应该是 看 请求数量和速度 ,不过 因为本地 demo 很简单,并不能看出 明显提升,技术实验场景也非常重要 ~

6、服务端渲染  SSR ?

  • 好处

网络异常,图片无法展示
|

  • 客户端 服务端渲染 对比

网络异常,图片无法展示
|

  • 适合场景

网络异常,图片无法展示
|

网络异常,图片无法展示
|


相关文章
|
13天前
|
缓存 前端开发 JavaScript
优化前端性能:关键策略与实践
随着互联网技术的发展,用户对网页加载速度和交互体验的要求日益提高,前端性能优化成为提升用户体验和网站竞争力的关键。本文探讨了前端性能优化的重要性和七大关键策略,包括压缩资源文件、利用浏览器缓存、减少HTTP请求、异步加载、使用CDN、优化CSS和JavaScript执行及第三方脚本优化,并提供了实践案例,帮助开发者构建更快、更高效的网站。
|
7天前
|
前端开发
前端diff文件对比使用worker进行优化
如何使用Web Worker在React项目中优化文件对比差异功能的实现。
26 5
|
11天前
|
缓存 前端开发 JavaScript
|
13天前
|
移动开发 缓存 前端开发
构建高效的前端路由系统:从原理到实践
在现代Web开发中,前端路由系统已成为构建单页面应用(SPA)不可或缺的核心技术之一。不同于传统服务器渲染的多页面应用,SPA通过前端路由技术实现了页面的局部刷新与无缝导航,极大地提升了用户体验。本文将深入剖析前端路由的工作原理,包括Hash模式与History模式的实现差异,并通过实战演示如何在Vue.js框架中构建一个高效、可维护的前端路由系统。我们还将探讨如何优化路由加载性能,确保应用在不同网络环境下的流畅运行。本文不仅适合前端开发者深入了解前端路由的奥秘,也为后端转前端或初学者提供了从零到一的实战指南。
|
3天前
|
缓存 前端开发 JavaScript
优化前端性能:关键策略与实践
在现代web开发中,前端性能优化至关重要。本文探讨了提升用户体验、转化率及降低服务器负载的关键策略,包括压缩资源文件、利用浏览器缓存、减少HTTP请求、异步加载、使用CDN、优化CSS/JavaScript执行、优化第三方脚本等,并介绍了Webpack/Rollup模块打包、HTTP/2特性、性能预算及Lighthouse/WebPageTest测试工具的应用。通过这些方法,可显著提高网站性能。
|
26天前
|
前端开发 JavaScript API
前端性能优化-控制并发
【9月更文挑战第7天】前端性能优化-控制并发
15 0
|
2月前
|
开发者 安全 UED
JSF事件监听器:解锁动态界面的秘密武器,你真的知道如何驾驭它吗?
【8月更文挑战第31天】在构建动态用户界面时,事件监听器是实现组件间通信和响应用户操作的关键机制。JavaServer Faces (JSF) 提供了完整的事件模型,通过自定义事件监听器扩展组件行为。本文详细介绍如何在 JSF 应用中创建和使用事件监听器,提升应用的交互性和响应能力。
22 0
|
2月前
|
开发者 Java
JSF EL 表达式:乘技术潮流之风,筑简洁开发之梦,触动开发者心弦的强大语言
【8月更文挑战第31天】JavaServer Faces (JSF) 的表达式语言 (EL) 是一种强大的工具,允许开发者在 JSF 页面和后台 bean 间进行简洁高效的数据绑定。本文介绍了 JSF EL 的基本概念及使用技巧,包括访问 bean 属性和方法、数据绑定、内置对象使用、条件判断和循环等,并分享了最佳实践建议,帮助提升开发效率和代码质量。
28 0
|
存储 Web App开发 监控
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
我们以前使用过的对hbase和hdfs进行健康检查,及剩余hdfs容量告警,简单易用 1.针对hadoop2的脚本: #/bin/bashbin=`dirname $0`bin=`cd $bin;pwd`STATE_OK=...
1044 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
线程的状态有:new、runnable、running、waiting、timed_waiting、blocked、dead 当执行new Thread(Runnabler)后,新创建出来的线程处于new状态,这种线程不可能执行 当执行thread.start()后,线程处于runnable状态,这种情况下只要得到CPU,就可以开始执行了。
720 0
下一篇
无影云桌面