博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端性能优化
阅读量:6839 次
发布时间:2019-06-26

本文共 1403 字,大约阅读时间需要 4 分钟。

1、尽可能减少HTTP请求:图片合并 (css sprites),Js脚本文件合并、css文件合并

2、减少DNS查询

DNS查询服务指域名查找,指将请求的域名转化为对应的IP地址,就如姓名和门牌号的关系。如输入www.baidu.com  DNS系统会将此域名转化为119.75.217.109,然后将IP地址返回给浏览器,这个过程会花费一定的时间,影响页面的加载,所以要尽可能减少DNS查询。

减少DNS查询的方法有: 缓存 DNS查找可以改善页面性能,大多数浏览器有自己的缓存系统,缓存时间又不一致,缓存时间越长,DNS保存的时间越长。

当客户端中的 DNS缓存都为空时(浏览器和操作系统都为空), DNS查找的次数和页面中主机名的数量相同。这其中包括页面中 URL、图片、脚本文件、样式表、Flash对象等包含的主机名。减少主机名的数量可以减少DNS查找次数。

减少主机名的数量还可以减少页面中并行下载的数量。减少 DNS查找次数可以节省响应时间,但是减少并行下载却会增加响应时间。我的指导原则是 把这些页面中的内容分割成至少两部分但不超过四部分。这种结果就是在减少 DNS查找次数和保持较高程度并行下载两者之间的权衡了。

 

3、将css放在页面最上面,将js放在页面最下面

css放在页面最上面可以防止页面出现白屏、闪跳的现象,即减少页面的首屏出现时间。js的下载和执行会阻塞Dom树的构建(严谨地说是中断了Dom树的更新),所以script标签放在首屏范围内的HTML代码段里会截断首屏的内容。而且js中可能会对DOM节点进行操作,而这时代码是自上向下进行执行的,这样会造成js对相应的元素操作不了。所以js放在页面的最下面

 

4、压缩js和css

减少文件体积,去除不必要的空白符、格式符、注释(即对代码进行格式化)

 

5、把js和css提取出来放在外部文件中

这一条要灵活运用,把js和css提取出来放在外部文件的优点是:减少html体积,提高了js和css的复用性,提高日后的可维护性

缺点:增加了http请求,不过这一点可以通过缓存来解决

什么情况下将js和css写在页面内呢,可以分为几种情况:js和css代码比较少;这个页面不怎么会访问

 

6、避免重定向

重定向就是用户请求的页面被转移到了别的地方,浏览器向服务请请求一个页面,服务器告诉浏览器请求的页面已经被转移到另外一个页面,并告知另一个页面地址,浏览器就再发送请求到重定向的地址。这样会增加服务器和浏览器之间的往返次数,影响网站性能。

重定向状态码有:301永久重定向   302临时重定向。304 not modified  并不是真的重定向,它是用来告诉浏览器get请求的文件在缓存中,避免重新下载。

 

7、移除重复脚本

8、配置实体标签Etag

9、使用ajax缓存

ajax的get和post方法:

只要是浏览器的get请求,浏览器都会使用缓存,对于同一地址的请求,服务器会发送304状态码到浏览器,浏览器就会使用缓存中的数据

post的请求每次都会被执行,浏览器不会缓存

10、使用Gzip压缩

11、使用CDN(内容分发网络)

12、在css中避免expression表达式

13、添加expire/cache-control头

转载于:https://www.cnblogs.com/CaseyWei/p/9508532.html

你可能感兴趣的文章
redis中的order set 有序集合
查看>>
操纵声卡
查看>>
Win32编程day04 学习笔记
查看>>
MultipartFile(文件的上传)--CommonsMultipartResolver
查看>>
MongoDB之bson的介绍
查看>>
PostgreSQL 安装配置 (亲测可用)
查看>>
[CQOI2010]扑克牌
查看>>
C 入门 第九节 结构体指针
查看>>
WEB Application Development Integrator : 应用设置
查看>>
Revit API导出GBXML
查看>>
Android实现ListView圆角效果
查看>>
iOS - Regex 正则表达式
查看>>
Python--day64--内容回顾
查看>>
润乾V5手机报表说明文档
查看>>
Unix系统介绍
查看>>
照片切换
查看>>
求矩阵的局部极大值(15)
查看>>
Eclipse详细设置护眼背景色和字体颜色并导出
查看>>
Android Gradle 构建工具(Android Gradle Build Tools)是什么?
查看>>
AOP和IOC的作用
查看>>