weekCodeing / interview-answe

🌍 前端程序员训练 求星星 ✨ 各位同学可以在issues中提问,无论是实际项目中遇到的问题,或者是技术问题都可以, 大家一起解决💯 👍 😄。
http://www.dadaqianduan.cn/
76 stars 9 forks source link

161.渲染优化 #161

Open webVueBlog opened 4 years ago

webVueBlog commented 4 years ago

禁止使用iframe(阻塞父文档onload事件)

iframe会阻塞主页面的Onload事件 搜索引擎的检索程序无法解读这种页面,不利于SEO iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载

使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript 动态给iframe添加src属性值,这样可以绕开以上两个问题 禁止使用gif图片实现loading效果(降低CPU消耗,提升渲染性能)

使用CSS3代码代替JS动画(尽可能避免重绘重排以及回流)

对于一些小图标,可以使用base64位编码,以减少网络请求。但不建议大图使用,比较耗费CPU

小图标优势在于 减少HTTP请求 避免文件跨域 修改及时生效

页面头部的 会阻塞页面;(因为 Renderer进程中 JS线程和渲染线程是互斥的)

页面中空的 href 和 src 会阻塞页面其他资源的加载 (阻塞下载进程)

网页gzip,CDN托管,data缓存 ,图片服务器

前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数

用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能

当需要设置的样式很多时设置className而不是直接操作style

少用全局变量、缓存DOM节点查找的结果。减少IO读取操作

图片预加载,将样式表放在顶部,将脚本放在底部 加上时间戳

对普通的网站有一个统一的思路,就是尽量向前端优化、减少数据库操作、减少磁盘IO