前端优化

再谈前端性能优化

最后都变了- 提交于 2019-12-20 00:16:04
好的设计应该简单,而且始终可以提供最佳性能。 一、优化原因 谷歌的数据表明,一个有10条数据0.4秒可以加载完的页面,在变成30条数据加载时间为0.9秒后,流量和广告收入减少了20%。当谷歌地图的首页文件大小从100kb减少到70~80kb时,流量在第一周涨了10%,接下来的三周涨了25%。 腾讯的前端工程师根据长期的数据监控也发现页面的一秒钟延迟会造成9.4%的PV的下降,8.3%跳出率的增加以及3.5%转化率的下降。 可以看出,性能优化商业上来说很重要。 但是,更重要的还是屏幕前我们的用户,让用户在使用产品时有更快更舒适的浏览体验,这算是一种前端工程师的自我修养。 二、优化目标 以让用户满意为目标呈现网页是终极的目标。当然页面速度要快,不过快只是构成满意的一个因素。 我们使用Google团队提出的RAIL模型作为优化的目标。 目前国内包括腾讯在内的团队都在使用这个评估方案。 Response:100ms内响应; Animation:10ms内生成一帧; Idle:最大程度增加空闲时间; Load:1000ms内呈现内容; 1)以用户为中心 User-centered 用户是性能优化的中心,一切性能优化皆是为了用户获得更佳的体验。 那么,我们的用户如何评价性能延迟: 0-16ms 用户可以感知每秒渲染 60 帧的平滑动画转场。也就是每帧 16 毫秒 留给应用大约 10

前端优化方案

末鹿安然 提交于 2019-12-19 02:28:41
什么是前端 性能 优化(what)? 从用户访问资源到资源完整的展现在用户面前的过程中,通过技术手段和优化策略,缩短每个步骤的处理时间从而提升整个资源的访问和呈现速度。 为什么要做前端性能优化(why)? 在构建web站点的过程中,任何一个细节都有可能影响网站的访问速度,如果不了解性能优化知识,很多不利网站访问速度的因素会形成累加,从而严重影响网站的性能,导致网站访问速度变慢,用户体验低下,最终导致用户流失。 1. 从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。 2. 从服务商角度而言,优化能够减少页面请求数、或者减小请求所占带宽,能够节省可观的资源。 总之,恰当的优化不仅能够改善站点的用户体验并且能够节省相当的资源利用。 从浏览器发起请求到页面能正常浏览都有哪些阶段(process)? 预处理——>DNS解析——>建立连接——>发起请求——>等待响应——>接受数据——>处理元素——>布局渲染 如何优化——性能优化的具体方法? 一)内容层面 1、DNS解析优化 (DNS缓存、减少DNS查找、keep-alive、适当的主机域名) 2、避免重定向(/还是需要的) 3、切分到多个域名 4、杜绝404 二)网络传输阶段 1、减少传输过程中实体的大小 1)缓存 2)cookie优化 3)文件压缩( Accept-Encoding: g

前端性能优化指南

本小妞迷上赌 提交于 2019-12-17 02:35:42
作者: JowayYoung 仓库: Github 博客: 掘金 、 思否 、 知乎 、 简书 、 头条 、 CSDN 公众号: Uzero 联系我:关注公众号后有我的 微信 哟 特别声明:未经授权不得对此文章进行转载或抄袭,否则通过法律途径进行解决,如需转载或开通公众号白名单可联系我,希望各位尊重原创的知识产权 前言 发现总结性的小干货可以为大家提升更好的开发技巧和编码思维,对代码量产化提供更扎实的质量和支持。这次我们来聊聊大家可能都比较关心的话题: 性能优化 。 一说到页面的性能优化,大家可能都会想起 雅虎军规 、 2-5-8原则 、 3秒钟首屏指标 等规则,这些规则在开发过程中不是强制要求的,但是有时候为了追求页面性能的完美和体验,就不得不对原有的代码进行修改和优化。 下面就结合自己三年多的开发经验和大量的项目实践,整理出一些常用的性能优化要点,同时再罗列一下 雅虎军规 、 2-5-8原则 、 3秒钟首屏指标 这三个常用规则的要点。 为了方便记忆和阅读,文章使用部分简写名词,解释如下 D端 :桌面端页面 Desktop End Page M端 :移动端页面 Mobile End Page 概述指南 D端优化手段在M端同样适用 在M端提出3秒钟渲染完成 首屏指标 基于第二点,首屏加载3秒内完成或使用 Loading 进行占位 基于联通3G网络平均 338kb/s(2.71mb

前端性能监控系统

浪尽此生 提交于 2019-12-10 00:11:55
引言 前阵子在 w3ctech 的 走进名企 - 百度前端 FEX 专场 上曾“夸下海口”说听完讲座后七天就可以打造自己的前端性能监控系统,既然说出去了也不能食言。从前一篇文章 前端数据之美 相信大家对前端数据有了一定的了解,下面就针对其中的性能数据及其监控进行详细阐述。 开始行动 本文中的性能主要指 web 页面加载性能,对性能还不了解?不用担心,接下来的“每一天”跟我一起进入前端性能的世界。 Day 1 为什么要监控性能? “If you cannot measure it, you cannot improve it” ———— William Thomson 这是一个最基本的问题,为什么要关注和监控前端性能?对于公司来说,性能在一定程度上与利益直接相关。国外有很多这方面的调研数据: 性能 收益 Google 延迟 400ms 搜索量下降 0.59% Bing 延迟 2s 收入下降 4.3% Yahoo 延迟 400ms 流量下降 5-9% Mozilla 页面打开减少 2.2s 下载量提升 15.4% Netflix 开启 Gzip 性能提升 13.25% 带宽减少 50% 数据来源:http://www.slideshare.net/bitcurrent/impact-of-web-latency-on-conversion-rates http:/

【前端性能优化】高性能JavaScript整理总结

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-06 05:27:41
高性能JavaScript整理总结 关于前端性能优化:首先想到的是 雅虎军规34条 然后最近看了《高性能JavaScript》 大概的把书中提到大部分知识梳理了下并加上部分个人理解 这本书有参考雅虎特别性能小组的研究成果,所以跟34 军规有很多相似之处 有不当之处请在评论区指正,感谢~ 约定 :很多单词语法都是简写比如doc指document,点点点代表不重要代码省略,码字不易(/双手合十) 1. 加载和执行 JavaScript是单线程,所以JavaScript的加载和执行是从上至下加载执行完一个再继续加载执行下一个文件,会阻塞页面资源的加载,所以一般情况下JavaScript文件放在body标签 内 底部,很多后端开发人员放在body标签外下面,这样做不好的地方有两处:1、不规范 2、 可能 会造成js获取不到页面元素而导致报错。而放在body标签内底部可以确保js执行前页面渲染完成  <body> js... //正确 </body> <!-----------------------分界线----------------------------> <body> </body> js... //错误 合并脚本,每个<script>标签初始化下载都会阻塞页面渲染,所以减少页面的<script>标签数量可以起到优化作用,内嵌脚本外链脚本通用,另外HTTP会带来的额外的性能消耗

前端性能优化

我只是一个虾纸丫 提交于 2019-12-05 22:15:33
前端性能优化可以分为两大类,分别是 页面级别优化:包含了http请求数以及内联脚本位置优化; 代码级别优化:包含DOM操作优化,CSS选择符优化以及图片优化等。 优化的目的 优化的目的在于让页面加载的更快,对用户操作响应更及时,为用户带来更好的用户体验,对于开发者来说优化能够减少页面请求数,能够节省资源。 页面级别优化 http请求数 减少http请求数是最重要也是最有效的方法,可以通过以下方法来减少http请求: 合理的设置http缓存,恰当的缓存设置可以大大减少http请求。要尽可能地让资源能够在缓存中待的更久; 从设计实现层面简化页面,保持页面简洁、减少资源的使用是最直接的 资源合并与压缩,尽可能的将外部的脚本、样式进行合并,多个合为一个 CSS Sprites,通过合并CSS图片,这是减少请求数的一个好办法 图片地图: 假设导航栏上有五幅图片,点击每张图片都会进入一个链接,这样五张导航的图片在加载时会产生5个HTTP请求。然而,使用一个图片地图可以提高效率,这样就只需要一个HTTP请求。 服务器端图片地图:将所有点击提交到同一个url,同时提交用户点击的 x,y坐标,服务器端根据坐标映射响应 客户端图片地图:直接将点击映射到操作 使用图片地图的缺点:指定坐标区域时,矩形或圆形比较容易指定,而其他形状手工指定比较难 CSS Sprites: 直译过来就是CSS精灵

前端文档汇总(含代码规范、开发流程、知识分享,持续更新)

左心房为你撑大大i 提交于 2019-12-05 08:34:30
front-end-Doc 前端文档汇总(含代码规范、开发流程、知识分享,持续更新) 原Github地址 进去后可直接点链接查看文章 综合类 地址 前端文档基本例子 https://github.com/mgbq/front... 前端知识体系 http://www.cnblogs.com/sb1987... 前端知识结构 https://github.com/JacksonTia... Web前端开发大系概览 https://github.com/unruledboy... Web前端开发大系概览-中文版 http://www.cnblogs.com/unrule... Web Front-end Stack v2.2 https://raw.githubusercontent... 免费的编程中文书籍索引 https://github.com/justjavac/... 前端书籍 https://github.com/dypsilon/f... 前端免费书籍大全 https://github.com/vhf/free-p... 前端知识体系 http://www.cnblogs.com/sb1987... 免费的编程中文书籍索引 https://github.com/justjavac/... 智能社 - 精通JavaScript开发 http://study.163.com

如何才能做一个合格的前端开发者呢?

梦想与她 提交于 2019-12-04 21:44:54
如何才能做一个合格的前端开发者呢? 第一,必须掌握基本的Web前端开发技术,其中包括:CSS、HTML、SEO、DOM、BOM、Ajax、Java等,在掌握这些技术的同时,还要清楚地了解它们在不同浏览器上的兼容情况、渲染原理和存在的Bug。 第二,在一名合格的前端工程师的知识结构中,网站性能优化、SEO和服务器端的基础知识也是必须掌握的。 第三,必须学会运用各种工具进行辅助开发。 第四,除了要掌握技术层面的知识,还要掌握理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持,等等。 来源: CSDN 作者: 前端碎碎念 链接: https://blog.csdn.net/zhongqw_00/article/details/88929162

Angular前端优化思路

匆匆过客 提交于 2019-12-04 18:16:32
简单总结接下我这边angular前端优化步骤都是满满的干货,各位客官有好的改进欢迎留言~ 1. 动静分离 项目里面前端比较占用带宽的一般都是加载静态资源,请求后台接口一般占用带宽都是1kb左右,但是在加载静态资源往往会达到mb级别,占用大量带宽,明现影响了业务,所以动静分离是必须而且必要做的,angualr里面也会有指令来指定加载静态资源路径从而动静分离 ng build --deployUrl=指定域名/ 2.js ,css 代码压缩 angular编译的js基本都很大达到了mb级别,加载起来很占用带宽,不过angualr也提供了编译时压缩代码的功能,angular build指定为 --prod即可,你会发现压缩后代码成倍数的变小很恐怖哦,不过prod编译检查比较严格,会出现很多报错,另外这里多说一嘴,我自己也测试比较过,angular项目设置懒加载策略,压缩后的js还会进一步变小 export const routing: ModuleWithProviders = RouterModule.forRoot(routes, { // 注释下面这一行可以激活延迟加载策略 // preloadingStrategy: PreloadAllModules, // useHash: true }); 3.CDN加速 CND加速不用多说了也是必要优化步骤,可以自行百度

前端图片加载优化

浪子不回头ぞ 提交于 2019-12-03 13:56:56
图片是界面显示效果很重要的组成部分,图片加载关系到用户体验、应用性能,优化图片加载的常用策略为:预加载和懒加载。 图片太多导致向服务器请求的次数太多,图片太大导致每次请求的时间过长. 1、预加载、懒加载   预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。   懒加载:懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。   两种技术的本质:两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。   懒加载对服务器前端有一定的缓解压力作用,预加载 则会增加服务器前端压力。 2、将图片服务和应用服务分离(从架构师的角度思考)   对于服务器来说,图片始终是最消耗系统资源的,如果将图片服务和应用服务放在同一服务器的话,应用服务器很容易会因为图片的高I/O负载而崩溃,所以当网站存在大量的图片读写操作时,建议使用图片服务器.   (注:图片服务器是专门为图片读写操作优化的独立服务器,运行网站的服务器称为应用服务器)   另外浏览器在同一时间对同一域名下的资源的并发请求数目是有限制的,一般在2-6之间,超过限制数目的请求就会被阻塞.一些主流浏览器对 HTTP1.1 和 HTTP 1.0 的最大并发连接数目 3、简单粗暴的压缩方案   我们可以借助一些第三方软件来进行压缩,比如https://tinypng.com/,压缩后分辨率不变,肉眼看不失真