1.减小Http请求数量css
2.使用CDN(内容分发网络) 放置副本服务器html
3.添加Expire/Cache-Control头 expire头的内容是一个时间值,值就是资源在本地的过时时间,存在本地,在本地缓存阶段,找到一个对应的资源值,当前时间还没超过资源的过时时间,就直接使用这一个资源,不会发送Http请求 cache-control 是Http协议中经常使用的头部之一,顾名思义,它是负责页面的缓存机制,若是该头部指示缓存,缓存的头部也会存在本地,操做流程和expire类似,但也有不一样的地方,cache-control有更多的选项,并且也有更多的处理方式java
4.启用Gzip压缩 先压缩,再传输web
5.将css放置在页面的最上边浏览器
6.将script放置在页面最下面(先呈现内容,减小等待时间) 页面元素的加载顺序html->head->meta->title(内容,网页标题)->style加载样式,解析样式->link标签->script文件->body->div->img->页面加载完毕缓存
7.避免在css中使用Expressions css Expressions 关联css属性<--->JavaScript表达式安全
8.把JavaScript和css都放到外部文件中服务器
8.1提取成文件的好处 提升js和css的复用 减小页面体积 提升js和css的可维护性网络
8.2写在页面中的好处 减小页面请求 提高页面渲染速度post
8.3写在页面的状况 当css或js只应用于一个页面 不常常被访问到 脚本和样式不多
9.减小DNS查询 浏览器缓存,IE 30ms Firefox 60s Chrome 60s 当缓存时间长:减小DNS的重复查找,节省时间 当缓存时间短:及时的检测网站服务器的变化,保证准确性 单域 多域
10.最小化JavaScript和css
10.1去除没必要要的空白符,格式符,注释符-->代码的格式化
10.2简写方法名,参数名压缩Js脚本 建议:在正式上线项目前,将javaScript和css都进行压缩,使线上版本是最轻量级的,大幅提高网站性能
11.避免重定向 重定向:原始请求被重定向到了其余请求 重定向状态码:301 Moved Permanently 移动到了另外的位置,永久重定向,搜索引擎智能 302 Found 页面被找到了,临时重定向 找旧地址再跳 增长了访问服务器的次数
12.移除重复的脚本
13.配置实体标签(ETag) ETag Entity Tag实体标签,属于http协议,受web服务支持 使用特殊的字符串来标识某个请求资源版本
14.使用Ajax(Asynchronous JavaScript and XML)缓存 分批加载,局部更新 POST:每次都执行,不能够被缓存 GET:同一地址不重复执行,能够被缓存 POST和GET的区别
14.1GET: 把参数数据队列加到提交表单的ACTION属性所指的URL队列中,值和表单内各个字段一一对应,在URL中能够看到 服务器端用Request.QueryString获取变量的值 传送的数据量比较小,不能大于2kb 安全性很是低 <form method="get" action="a.asp?b=b">跟<form method="get" action="a.asp">是同样的,也就是说,method为get时,action页面后边带的参数列表会被忽略 总结:get会将参数添加到URL中,经过这种方式传递到服务器,一般利用一个?表明URL地址的结尾与数据参数的开端,后面的参数每个数据参数以"名称=值"的形式出现,参数与参数之间利用链接符&来区分
14.2POST: 经过HTTP POST机制,将表单内各个字段与其内容放置在HTML header内一块儿传送ACTION属性所指的URL地址,用户看不到这个过程 服务器端用Request.Form获取提交的数据 传送的数据量比较大,通常被默认为不受限制,但理论上,因服务器的不一样而异 安全性较高 <form method="post" action="a.asp?b=b">跟<form method="post" action="a.asp">是不同的 总结:数据是放在HTTP主体中的,其组织方式不仅一种,有&链接方式,也有分隔符方式,可隐藏参数,传递大批数据,比较方便