写点什么

提高 Web 应用程序性能的权威指南

  • 2019-08-16
  • 本文字数:1752 字

    阅读完需:约 6 分钟

提高Web应用程序性能的权威指南

一份能够提高你的速度和效率的工具和资源列表。



如果你的网站不能在 3 秒内加载,谷歌会将它标记为慢。这样想就很恐怖,因为现在很多网站事实上都很慢。人类正着手登陆火星,而地球上的网站却还在以糟糕的方式构建和维护,从而导致互联网上到处都是反应迟缓的网站。除非你正在构建一个渐进式 Web 应用程序,否则很大可能你的网站会被认为很慢。


因此,解决方案很简单:不要构建一个网站,而是构建一个渐进式 Web 应用程序!


这样做,你就成功了一半。剩下的一半,你需要指南和工具。当我在Hyperware坚持构建高质量、快速的 Web 应用程序的过程中,我学到了一件事:如果你在互联网上寻找建议和工具,网上比比皆是,但是只有很少一部分对完成工作有所帮助。而找到这些对你有帮助的建议和工具是一份艰巨的任务。


本文将介绍我个人认为有用,并且尝试和测试过的工具和优化方法,以及一些我在为企业构建渐进式 Web 应用程序时仍会参考的有用文章。


当你聚焦于某事时,继续寻找东西是很痛苦的。因此,我为你们做了这个脏活,写了这篇值得收藏的文章。


这些很棒的工具的用途是:


  • 优化或压缩图片

  • 检查网站性能

  • 提高 Web 应用程序性能

优化或压缩图片

Squoosh

Squoosh是我用过的最棒的优化工具。我真希望早点发现这个工具。Squoosh 是由谷歌工程师构建的,其中最棒的是,你在调整质量参数的时候可以实时看到优化过的图片和没有优化过的图片的差异。Squoosh 很好用,能让你清楚知道压缩后的图片是什么样子。


ImageOptim

ImageOptim是一个简单易用的图片优化器。它会自动缩减图片尺寸而不会丢失图片的原始质量。ImageOptim 有一个友好的拖拽界面和多文件上传选项,因此非常易用。由于 ImageOptim 只在 Mac 上可用,FileOptimmizer对于 Windows 用户是一个不错的选择。


检查网站性能

网站性能测分工具并不仅仅是提供 100 分能得几分的数字——他们应该用来反复寻找和修复你的网站中薄弱的部分。

Lighthouse

没有其他工具比Lighthouse更了解网站性能的了。性能上 90+的得分对于 Web 应用程序来说是一个绝对的基准。我强烈建议你读一读《Lighthouse | Tools for Web Developers | Google Developers》来更好地了解谷歌的 Lighthouse。


专业建议:使用Lighthouse chrome扩展来更快地审核任何页面。

GTmetrix

GTmmetrix可能是你除了 Lighthouse 外唯一需要的工具,来进一步检查你的网站是否还有需要修复的地方。它显示了相关机会来提高页面速度以及页面加载时间和页面大小。

提高 Web 应用程序性能

  1. 总是在.js 文件前面引用 CSS 文件。

  2. 在 HTML 文件中少用和,除非你有一个关键的请求需要提前加载。

  3. 对于需要频繁更新的应用程序来说,拆分打包文件比较好。对于小型应用程序,最好打包成一个.js 文件和.css 文件,这样会减少 HTTP 请求的数量。

  4. 使用 Pagespeed 模块。PageSpeed模块是开源的服务器模块,可以自动优化网站。静态托管用户可以将如下代码加到他们的.htaccess 文件中来启用 PageSpeed 模块。



  1. 压缩.js 和.css 文件。这种用途的在线工具有很多(例如,minifier)。如果你使用 Webpack,那么你的文件会在生产构建时被自动压缩!

  2. 如果你使用 Webpack 作为模块打包器,使用UglifyJsModuleConcatenateSplitchunks等 Webpack 优化插件。

  3. 使用Webpack Bundle Analyzer插件来了解你的应用程序在生产构建时每个占用了多少空间。减少在你的打包文件中占用大量空间的没有用到的或很少用到的模块。

关于提升 Web 应用程序性能的一些福利文章

如果有工具来为你做这些脏活儿就好了。这就是为什么开发者喜欢 Webpack 的原因,也是他们不了解 Webpack 是如何工作的原因之一!


下面的内容将深入探讨性能优化。你将了解网站速度的方式、内容和原因。通过这些内容,你可以花一点儿时间来学习关于浏览器渲染和网站速度的基础知识。

视频 | 使用Chrome DevTools优化网站速度

浏览器渲染优化——谷歌的一项免费课程

谷歌的渐进式Web应用程序指南

理解Webpack中的代码拆分和打包拆分

我相信所有上述信息都将为你在提升 Web 应用程序性能方面提供很大帮助。由于互联网的信息变化很快,一旦我遇到其它有用的东西,我将持续更新本文。敬请期待!


作者介绍:


Swanand Kadam 是 HyperwareX.com 的创始人,关注渐进式 Web 应用程序、机器学习和员工激励。


原文链接:


The Definitive Guide to Boosting Your Web Application Performance


2019-08-16 11:4111944

评论

发布
暂无评论
发现更多内容

点赞破百万!字节算法大佬亲撰30W字数据算法笔记:GitHub标星93K

小柴说Java

数据结构 算法 算法题 算法与数据结构 算法面试题

XSKY星辰天合与观测云完成产品兼容性互认证 构建全业务链路的可观测性

观测云

从GitHub火到了InfoQ!共计1658页的《Java岗面试核心MCA版》,拿走不谢

收到请回复

Java 程序员 金九银十 Java面试八股文 常见面试题

推荐 | 移动开发主流热更新技术

Speedoooo

小程序 APP开发 热更新

干货!XDR产品安全检测体系如何更好的落地?

极盾科技

网络安全 安全 信息安全 数据安全 xdr

从0到1打造推荐系统工程实战

Jay Wu

推荐系统

7 天找个 Go 工作,Gopher 要学的条件语句,循环语句 ,第3篇

梦想橡皮擦

Python 爬虫 8月月更

开源一夏 | 在STM32L051上使用RT-Thread (一、无线温湿度传感器 之 新建项目)

矜辰所致

开源 RT-Thread 8月月更 STM32L051

重磅升级!TDengine3.0正式发布

TDengine

数据库 tdengine 时序数据库

火热与争议并行,XDR路在何方?

极盾科技

网络安全 安全 信息安全 数据安全 xdr

CSDN 加入星策开源社区,携手推动企业智能化转型建设

星策开源社区

企业转型 智能化 CSDN

什么是知识库,为什么需要它?

Geek_da0866

洞见商业新机,云原生数据库GaussDB让企业决策更科学

华为云开发者联盟

数据库 后端 华为云

直播系统源码——重视哪些功能的开发?

开源直播系统源码

软件开发 直播系统源码 直播功能

重磅发布!阿里云全链路数据湖开发治理解决方案

阿里云大数据AI技术

大数据 阿里云 数据湖 数据分析

极盾·析策,XDR的正确打开方式

极盾科技

网络安全 安全 数据安全 xdr

兆骑科创创新创业大赛,双创活动,赛事承办,三招三引

兆骑科创凤阁

Alibaba最新发布的Spring Boot项目实战文档,Github标星78k

Java面试那些事儿

Java Java 面试 java程序员 Java工程师 spring-boot

让GitHub炸锅的深入理解MySQL实战手册,竟出自阿里云“藏经阁”

冉然学Java

Java MySQL 高可用 阿里 构架

企业实践|基于软件研运一体化DevOps平台的应用解析

云智慧AIOps社区

DevOps 自动化 敏捷开发 研发管理 代码托管

HUAWEI内网最新发布了一份452页网络协议手册,GitHb百万收藏

小柴说Java

Java 网络协议 java程序员 TCP/IP Java工程师

容器化 | 一文搞定镜像构建方式选型

RadonDB

MySQL Docker Kubernetes 镜像 RadonDB

谁在构建超云?

Kent Yao

超云

对话张星亮,洞察本质,SaaS首先是一种商业模式

B Impact

软件测试100天上岸1-测试就是找茬游戏

和牛

测试 8月月更

兆骑科创国内外创新创业服务平台,创业大赛,企业落地孵化

兆骑科创凤阁

微信官方kbone,Web端同构的福音

Geek_99967b

小程序

种草 Vue3 中几个好玩的插件和配置

江南一点雨

Java Vue

带你玩转“超大杯”ECS特性及实验踩坑

科技怪咖

基于DevCloud进行黑白棋实时对战游戏开发实践

科技怪咖

【Java】:程序流程的控制

翼同学

Java 学习 编程语言 分享 8月月更

提高Web应用程序性能的权威指南_技术管理_Swanand Kadam_InfoQ精选文章