web前端性能优化问题
常用的几大优化解决:
- 页面内容的优化
- 减少http请求
途径:
1>启用http/2--越来越多的浏览器都开始支持 HTTP/2。HTTP/2 为同一服务器的并发连接问题带来了很多好处。换句话说,如果有很多小型资源需要加载(如果你 打包过的话就没有必要了),在延迟和性能方面 HTTP/2 秒杀 HTTP/1。
2>设计层面保持简洁,减少资源请求。
3>根据需求设置http缓存--少变的可以在header中延长过期头;变化不频繁而又可能会变的资源可以使用 Last-Modifed来做请求验证
4>资源合并压缩--外部的文件进行压缩处理(js,css,image),减少多次请求。压缩合并工具grunt,gulp,webpack等
5>css Sprites 精灵图 多个图片在一个整体的图片上, 减少图片的请求
2. 减少DOM的数量
DOM的操作费时费力,每次的访问及修改都会导致页面的reflow和repaint需要耗费大量的资源,如使用循环的时候,结束后将变量保存到局部,在进行访问。
3. 避免404
4.减少DNS查询的数量
DNS解析优化(DNS缓存、减少DNS查找、keep-alive、适当的主机域名)
5. 避免不必要的http跳转
根据服务器需求http路由请求时‘/’是否要带
- JavaScript&&css的优化
- 样式表置顶--脚本表置底
- 外部引入文件
- 避免css表达式
- link替代@import 因为@import相当于将css放到底部
- 避免Fliters
- 避免重复代码
- Javascript代码优化 减少空格和注释
- 图片
- 压缩图片使用Sprite技术 -- 水平排列 ,颜色接近的排在一起 ,
- favcion.ico 浏览器会去读取这个图片 --确保存在,小 <1k ,过期时间设置较长
- cookie
- 减少cookie的大小和控制cookie污染
去除没有必要的cookie 存在请求头中
cookie<=4k 尽量减小cookie的使用
合理使用cookie的生命周期
2. 页面内容是用无域名cookie
静态页面资源不需要cookie,可以使用domain单独存放这些静态文件,有些proxy拒绝缓存带有cookie的内容,如果能将这些静态资源cookie去除,那就可以得到这些 proxy的缓存支持。
- 标签的优化
1.<title>标题:只强调重点即可,尽量把重要的关键词放在前面,关键词不要重复出现,尽量做到每个页面的<title>标题中不要设置相同的内容。
2.<meta keywords>标签:关键词,列举出几个页面的重要关键字即可,切记过分堆砌。
3.<meta description>标签:网页描述,需要高度概括网页内容,切记不能太长,过分堆砌关键词,每个页面也要有所不同。
4.<body>中的标签:尽量让代码语义化,在适当的位置使用适当的标签,用正确的标签做正确的事。让阅读源码者和“蜘蛛”都一目了然。比如:h1-h6 是用于标题类的, <nav>标签是用来设置页面主导航的等。
5.<a>标签:页内链接,要加 “title” 属性加以说明,让访客和 “蜘蛛” 知道。而外部链接,链接到其他网站的,则需要加上 el="nofollow" 属性, 告诉 “蜘蛛” 不要爬,因 为一旦“蜘蛛”爬了外部链接之后,就不会再回来了。
- 移动客户端
保持单个内容小于25kb
参考文章:
http://blog.csdn.net/grandpang/article/details/51329289
http://www.cnblogs.com/EnSnail/p/5671345.html
http://www.qdfuns.com/notes/18892/168da392c447a172d3dd0d8e1754ca48.html
http://www.cnblogs.com/lei2007/archive/2013/08/16/3262897.html
http://www.cnblogs.com/ricoliu/p/6090290.html
web前端性能优化问题的更多相关文章
- web前端性能优化指南(转)
web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络 ...
- Web前端性能优化教程09:图像和Cookie优化
本文是Web前端性能优化系列文章中的第九篇,主要讲述内容:图像和Cookie优化.完整教程可查看: 一. 图像优化 图像基础知识 gif: 适用于动画效果,例如提示的滚动条图案 jpg: 是一种使用 ...
- Web前端性能优化教程06:减少DNS查找、避免重定向
本文是Web前端性能优化系列文章中的第六篇,主要讲述内容:减少DNS查找.避免重定向.完整教程可查看: 一.减少DNS查找 基础知识 DNS(Domain Name System): 负责将域名UR ...
- Web前端性能优化教程08:配置ETag
本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:配置ETag.完整教程可查看:Web前端性能优化 什么是ETag? 实体标签(EntityTag)是唯一标识了一个组件的一个特定版本的字符串, ...
- Web前端性能优化教程05:网站样式和脚本
本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:网站样式和脚本代码的放置位置.使用外部javascript和css.完整教程可查看:Web前端性能优化 一.将样式表放在顶部 可视性回馈的重要 ...
- Web前端性能优化教程03:添加Expires头
本文是Web前端性能优化系列文章中的第三篇,主要讲述添内容:加Expires头.完整教程可查看:Web前端性能优化 什么是Expires头? Expires存储的是一个用来控制缓存失效的日期.当浏览器 ...
- Web前端性能优化教程04:压缩组件
本文是Web前端性能优化系列文章中的第四篇,主要讲述内容:压缩组件.完整教程可查看:Web前端性能优化 基础知识 gzip编码:gzip是GUNzip的缩写,是使用无损压缩算法的一种,最早是用于Uni ...
- Web前端性能优化教程07:精简JS 移除重复脚本
本文是Web前端性能优化系列文章中的第七篇,主要讲述内容:精简Javascript代码,以及移出重复脚本.完整教程可查看: 一.精简javascript 基础知识 精简:从javascript代码中 ...
- WEB前端性能优化:HTML,CSS,JS和服务器端优化
对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...
- Web前端性能优化的9大问题
1.请减少HTTP请求基本原理:在浏览器(客户端)和服务器发生通信时,就已经消耗了大量的时间,尤其是在网络情况比较糟糕的时候,这个问题尤其的突出.一个正常HTTP请求的流程简述:如在浏览器中输入&qu ...
随机推荐
- SPRING BOOT跨域访问处理
尊重原创:http://blog.csdn.net/ruiguang21/article/details/77878933 问题场景:由于项目中使用到跨域访问,今天也得到高人指点,所以写出来分享给大家 ...
- SQL强化(三) 自定义函数
---恢复内容开始--- Oracle中我们可以通过自定义函数去做一些逻辑判断,这样可以减少查询语句,提高开发效率 create -- 创建自定义函数 or replace -- 有同名函数就替换, ...
- (一)surging 微服务框架使用系列之surging 的准备工作rabbitmq安装
(1)下载erlang: http://www.erlang.org/download/otp_win64_17.3.exe 并安装 (2)下载RabbitMQ: http://www.rabbitm ...
- C++异常层次结构
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class MyArray { publi ...
- X-Windows桌面
提到X-Windows桌面,人们最先想到的一般都是KDE和GNOME.目前大多数的Linux发行版上的桌面环境都采用了这两个东西.确实,KDE和GNOME做得很好,界面美观.使用方便,而且现在Bug越 ...
- SSL证书安装指引
https://cloud.tencent.com/document/product/400/4143 下载得到的 www.domain.com.zip 文件,解压获得3个文件夹,分别是Apache. ...
- 解决mysql不是内部或外部命令
安装Mysql后,当我们在cmd中敲入mysql时会出现'Mysql'不是内部或外部命令,也不是可运行的程序或其处理文件. 工具/原料 mysql cmd 方法/步骤 1 打开我的电脑在我的电脑右键中 ...
- Python-Blog2-编写Web app 骨架
撸代码之前让我们先来看几个概念: 什么是协程(Coroutine)? 假设现在有两个子程序,子程序A和子程序B: def A(): print('1') print('2') print('3') d ...
- Android 双卡获取当前使用流量在线卡的信息
最近接触了一个项目,需要获取在线流量卡的信息,下面的方式,可以获取大部分手机的正确手机卡信息. 一 获取获取IMEI public static String getDeviced(int solt ...
- intellij springmvc的配置文件报错
报错: Checks references injected by IntelliLang plugin. Cannot resolve bean 解决: File--Settings[或直接CTR ...