常用的几大优化解决:

  • 页面内容的优化
  1. 减少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的优化
  1. 样式表置顶--脚本表置底
  2. 外部引入文件
  3. 避免css表达式
  4. link替代@import   因为@import相当于将css放到底部
  5. 避免Fliters
  6. 避免重复代码
  7. Javascript代码优化 减少空格和注释
  • 图片
  1. 压缩图片使用Sprite技术 -- 水平排列  ,颜色接近的排在一起 ,
  2. favcion.ico 浏览器会去读取这个图片 --确保存在,小 <1k  ,过期时间设置较长
  • cookie
  1. 减少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前端性能优化问题的更多相关文章

  1. web前端性能优化指南(转)

    web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络 ...

  2. Web前端性能优化教程09:图像和Cookie优化

    本文是Web前端性能优化系列文章中的第九篇,主要讲述内容:图像和Cookie优化.完整教程可查看:  一. 图像优化 图像基础知识 gif: 适用于动画效果,例如提示的滚动条图案 jpg: 是一种使用 ...

  3. Web前端性能优化教程06:减少DNS查找、避免重定向

    本文是Web前端性能优化系列文章中的第六篇,主要讲述内容:减少DNS查找.避免重定向.完整教程可查看:  一.减少DNS查找 基础知识 DNS(Domain Name System): 负责将域名UR ...

  4. Web前端性能优化教程08:配置ETag

    本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:配置ETag.完整教程可查看:Web前端性能优化 什么是ETag? 实体标签(EntityTag)是唯一标识了一个组件的一个特定版本的字符串, ...

  5. Web前端性能优化教程05:网站样式和脚本

    本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:网站样式和脚本代码的放置位置.使用外部javascript和css.完整教程可查看:Web前端性能优化 一.将样式表放在顶部 可视性回馈的重要 ...

  6. Web前端性能优化教程03:添加Expires头

    本文是Web前端性能优化系列文章中的第三篇,主要讲述添内容:加Expires头.完整教程可查看:Web前端性能优化 什么是Expires头? Expires存储的是一个用来控制缓存失效的日期.当浏览器 ...

  7. Web前端性能优化教程04:压缩组件

    本文是Web前端性能优化系列文章中的第四篇,主要讲述内容:压缩组件.完整教程可查看:Web前端性能优化 基础知识 gzip编码:gzip是GUNzip的缩写,是使用无损压缩算法的一种,最早是用于Uni ...

  8. Web前端性能优化教程07:精简JS 移除重复脚本

    本文是Web前端性能优化系列文章中的第七篇,主要讲述内容:精简Javascript代码,以及移出重复脚本.完整教程可查看:  一.精简javascript 基础知识 精简:从javascript代码中 ...

  9. WEB前端性能优化:HTML,CSS,JS和服务器端优化

    对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...

  10. Web前端性能优化的9大问题

    1.请减少HTTP请求基本原理:在浏览器(客户端)和服务器发生通信时,就已经消耗了大量的时间,尤其是在网络情况比较糟糕的时候,这个问题尤其的突出.一个正常HTTP请求的流程简述:如在浏览器中输入&qu ...

随机推荐

  1. A. Vasya and Football

    A. Vasya and Football time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  2. float浮动属性的基本常识

    CSS 浮动 请看下图,当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘: 再请看下图,当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边 ...

  3. Java集合系列[4]----LinkedHashMap源码分析

    这篇文章我们开始分析LinkedHashMap的源码,LinkedHashMap继承了HashMap,也就是说LinkedHashMap是在HashMap的基础上扩展而来的,因此在看LinkedHas ...

  4. vue实现侧边栏手风琴效果

    模板 代码如下 html <template> <div class="header"> <ul> <!-- 循环数据在点击调用chang ...

  5. Oracle_SQL99_连接查询

    Oracle_SQL99_连接查询 交叉连接 cross join   --交叉连接 cross join --作用:产生两个表的笛卡尔积 select * from emp cross join d ...

  6. 使用bat将优盘中的dig加到系统环境变量

    第一次使用bat批处理,记录下,方便查阅. @echo off::当前盘符set curPath=%cd%set digPath ="%curPath%tool\dig"set P ...

  7. Effective Java 第三版——28. 列表优于数组

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  8. pandas读取excel中指定数据的行数

    shuju = pd.read_excel(filename) loandata = pd.DataFrame(shuju) ncol = (len(loandata.keys())) data = ...

  9. redis 安装实战(10步完成安装)

    1 下载zip :https://redis.io/download   ---->redis-4.0.6 2 上传:利用wcp 上传到/usr/local/soft/ 3 解压:tar -zv ...

  10. linux 中 ping的回传值

      今天在学习鸟哥私房菜的过程中,不明白ping的回传值是怎么设置的,后来网上找的结果了,特此记录一下 1 题目大意是指,ping一个网段的机器,如果可以通,就显示UP,如果不通就显示Down,其中一 ...