NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

提高 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:4111828

评论

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

选赵敏还是选小昭,这可真是个问题 | Decision Tree

张利东

Python 学习 算法 决策树

Hadoop集群搭建-02安装配置Zookeeper

虚拟世界的懒猫

hadoop zookeeper centos7

【终于解决】ubuntu19安装nvidia驱动后屏幕亮度默认最亮不可调节

虚拟世界的懒猫

ubuntu 英伟达

你真的理解 Java 的基础数据类型吗

Rayjun

Java

如何写作一本书(2):前言与正文

英子编辑

技术 写作

程序员陪娃漫画系列——喂药

孙苏勇

程序员 生活 陪伴 漫画

当 Redis 发生高延迟时,到底发生了什么

程序员历小冰

redis Linux 延迟

Hadoop集群搭建-03编译安装hadoop

虚拟世界的懒猫

hadoop centos7

Zookeeper选举机制

tunsuy

zookeeper 开源 源码分析 分布式协同

Hadoop集群搭建-04安装配置HDFS

虚拟世界的懒猫

hadoop

跬步贴|5分钟搞定缓存击穿问题

架构师跬步营

Arthas安装及基本用法

编程随想曲

Java

和邓小平、基辛格“谈笑风生”的世界第一女记者:奥琳亚娜·法拉奇

赵新龙

记者 编辑 采访 法拉奇

Day 47|Week 07-5 曾国藩家书|问学篇-学问何处何时都可做

熊小北同学

idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD

虚拟世界的懒猫

spring mybatis ssm springmvc java8

消息队列Kafka - Kafka中的选举

Java收录阁

kafka

1分钟就能学会的时间管理大法

小匚

时间分配 时间管理

从“成为作者”到“立即创作”:开启你的“写作极客”生活

岛乾坤

写作

“我代码写完了,QA可以测了。”

蔡建斌

Scrum 敏捷 质量管理 测试

下一代存储NVMe over Fabrics

HU

如何无缝的将Flutter引入现有应用?

稻子

flutter ios android 开源 移动应用

机器学习中常用的处理手段

子夜2104

学习

Hadoop集群搭建-01前期准备

虚拟世界的懒猫

hadoop hdfs mapreduce zookeeper centos

利用Translate ToolKit 2.5.0 API构建Flask web app

虚拟世界的懒猫

Python nginx flask uwgsi translate

管理信息系统课程基础知识

小匚

安装VMware16兼容Hyper-v+WSL2+Docker+解决0x80370102报错

虚拟世界的懒猫

Docker vmware vm hyper-v WSL2

Hadoop集群搭建-05安装配置YARN

虚拟世界的懒猫

hadoop

centos6搭建NEXUSphp pt私人种子站

虚拟世界的懒猫

centos nexusphp pt bt

配置微软Azure大数据HDInsight云集群

虚拟世界的懒猫

microsoft 大数据 微软 azure hdinsght

我愿沉迷于学习,无法自拔(一)

孙瑜

深度思考 个人成长

做好仓储控制系统(WCS)的关键

申扬科技

仓储控制系统 WCS

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