前端开发总结
来源:互联网 发布:邢岫烟 知乎 编辑:程序博客网 时间:2024/05/21 13:56
1、Make Fewer HTTP Requests
众所周知,http请求是要开销的,减少请求数可以提高网页加载速度。常用的方法,合并css,js以及 Image maps和css sprites等。根据功能分开开发,然后通过内部系统对js,css进行分组合并,这样对于浏览器来说是一个请求,但是开发时仍然能还原成多个,方便fiddler调试和性能优化。而css sprites是指只用将页面上的背景图合并成一张,然后通过background-position来取背景。不提倡看到像图片的都用图片来处理,可以通过CSS实现
2、Use a Content Delivery Network (CDN 内容分发网络)
简单地讲,通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的 cache服务器内,通过DNS负载均衡(可选根据时间或访问速度来决定访问哪台服务器资源,判断用户来源访问cache服务器取得所需的内容。这样可以有效减少数据在网络上传输的时间,提高速度。
3、Add an Expires Header
主要通过服务器端脚本设置Cache-Control和Expires完成。
4、Gzip Components
Gzip的思想就是把文件先在服务器端进行压缩,然后再传输。这个压缩率很高,基本上可以压缩到原来的1/4。
5、Put Stylesheets at the Top
我们知道,css,Cascading Style Sheets (层叠样式表)。层叠即意味后面的css可以覆盖前面的css,级别高的css可以覆盖级别低的css。。ie,firefox等浏览器在css全部传输完全之前不会去渲染任何的东西。很多浏览器下,如IE,把样式表放在页面的底部的问题在于它禁止了网页内容的顺序显示。浏览器阻止显示以免重画页面元素,那用户只能看到空白页了。Firefox不会阻止显示,但这意味着当样式表下载后,有些页面元素可能需要重画,这导致闪烁问题。所以我们应该尽快让css加载完毕。比如说是延时显示的广告,我们为了提高css加载速度,也独立出来了放在页面的底部。
6、Put Scripts at the Bottom
原因:首先,防止script脚本的执行阻塞页面的下载。在页面loading的过程中,当浏览器读到js执行语句的时候一定会把它全部解释完毕后在会接下来读下面的内容。浏览器这么做的逻辑是因为js随时可能执行 location.href或是其他可能完全中断此页面过程的函数,即如此,当然得等他执行完毕之后再加载咯。所以放在页面最后,可以有效减少页面可视元素的加载时间。其次,脚本引起的第二个问题是它阻塞并行下载数量。HTTP/1.1规范建议浏览器每个主机的并行下载数不超过2个(IE只能为2个,其他浏览器如ff等都是默认设置为2个,不过新出的ie8可以达6个)。因此如果您把图像文件分布到多台机器的话,您可以达到超过2个的并行下载。但是当脚本文件下载时,浏览器不会启动其他的并行下载。
7、Avoid CSS Expressions
尽量减少或者不使用css表达式,其实大部分可以用js实现。
8、Make JavaScript and CSS External
把css和js写在页面内容可以减少2次请求,但也增大了页面的大小。我们的网站已经对静态文件做了缓存,那也就没有2次多余的http请求了。
9、Reduce DNS Lookups
一次DNS的解析过程会消耗20-120毫秒的时间,在dns查询结束之前,浏览器不会下载该域名下的任何东西。所以减少dns查询的时间可以加快页面的加载速度。yahoo的建议一个页面所包含的域名数尽量控制在2-4个。这就需要对页面整体有一个很好的规划。目前我们这点做的不好,尤其是对于单纯靠广州收入的网站,很多广告投放系统拖累了我们,前端攻城狮们也无可奈何。
10、Minify JavaScript
压缩js和css的作用很显然,减少页面字节数。Js虽然压缩了,降低了可读性,但是在调试的时候,工具可以将其复原,也就是调用本地的
11、Avoid Redirects
重定向是需要消耗时间的。
12、Remove Duplicate Scripts
13、Configure ETags
14、Make Ajax Cacheable
- web前端开发总结
- 前端开发总结
- 前端开发问题总结
- 前端开发总结
- 前端开发总结
- 前端开发知识点总结
- 一周总结:前端开发
- 前端开发入门总结
- 前端开发规范总结
- 移动前端开发总结
- 前端开发大致总结
- web前端开发总结
- 前端开发问题总结
- 前端开发学习总结
- 前端开发总结
- 前端开发反思总结
- 前端开发的框架总结
- 网易财经前端开发总结
- Java regex
- m个数中取n个数的组合
- 把编码为 GB2312 的 NSData 转换为 NSString
- Objective-C中扩展方法、属性和数据成员的解决方案以及方法拦截
- 一个注册表恶意程序
- 前端开发总结
- 去掉iphone应用程序图标上的弧形高光
- UIView 旋转(rotation)
- 犀牛书第2章 JavaScript词法结构
- Android:Camera
- 如何使用J-Link V8 烧写程序到NOR Flash
- OSX: ARD的基于目录服务用户权限
- MySQL insert性能优化
- 在VMware中为CentOS配置静态ip并可访问网络-windows下的VMware