前端的优化包括四个部分:HTML结构优化、CSS样式优化、JS行为优化、服务器的优化。合理的前端优化不仅能够提升网站加载速度,而且能够更好的提升用户体验和团队开发效率。所以前端性能优化的重要性是不言而喻的。

HTML部分

  1. 语义化HTML:好处在于可以使代码简洁清晰,支持不同设备,利于搜索引擎,便于团队开发;
  2. 减少DOM节点:加速页面渲染;
  3. 给图片加上正确的宽高值:这可以减少页面重绘,同时防止图片缩放;
  4. 防止src属性和link的href属性为空:当值为空时,浏览器很可能会把当前页面当成其属性值加载;
  5. 正确的闭合标签:如避免使用<div/>,浏览器会多一个将它解析成<div\></div\>的过程;
  6. 链接为目录或首页的地址后面加”/”,如http://www.asheep.cn/;
  7. 用LINK而不用@import方式导入样式;
  8. 样式放在页头,JS放在页尾;
  9. 缩小favicon.ico并缓存;

CSS部分

  1. 避免使用 CSS Expressions(CSS表达式):如
  2. 避免使用 CSS Filter(CSS滤镜);
  3. 使用CSS缩写,减少代码量;
  4. 通过CSSSprites把同类图片合成一张,减少图片请求;
  5. 减少查询层级:如.header .logo要好过.header .top .logo;
  6. 减少查询范围:如.header>li要好过.header li;
  7. 避免TAG标签与CLASS或ID并存:如a.top、button#submit;
  8. 删除重复的CSS;

Javscript部分

  1. 尽量少用全局变量;
  2. 使用事件代理绑定事件,如将事件绑定在body上进行代理;
  3. 避免频繁操作DOM节点;
  4. 不使用EVAL;
  5. 减少对象查找,如a.b.c.d这种查找方式非常耗性能,尽可能把它定义在变量里;
  6. 类型转换:把数字转换成字符串使用”” + 1,浮点数转换成整型使用Math.floor()或者Math.round();
  7. 对字符串进行循环操作,譬如替换、查找,应使用正则表达式;
  8. 删除重复的JS;

服务器部分

  1. 尽量合并CSS、JS文件,或将其直接写在页面上,减少HTTP请求;
  2. 压缩CSS、JS文件,缩短文件传输时间;
  3. 避免404错误:特别要避免给404指定一个停摆页面,否则所有404错误都将会加载一次页面;
  4. 一般要求减少DNS查询次数,如同一个页面的请求资源尽量少的使用不同的主机名,这可以减少网站并行下载的数量,但很多网站为了加速下载资源其实是特意用了多个主机名,这里要做一个权衡;
  5. 使用CDN加速,使用户从离自己最近的服务器下载文件;
  6. 减少Cookie的大小,使用无cookie的域,客户端请求静态文件的时候,减少 Cookie 的反复传输对主域名的影响;
  7. 为文件头指定Expires,使内容具有缓存性;
  8. 使用gzip压缩内容;

这些看似基础的前端优化技巧,其实也是最重要的,在我们平时开发工作中,能够运用这些前端优化那么你的项目会有质的提升。

最新文章

  1. 基于ionic+angulajs的混合开发实现地铁APP
  2. redis3.2新增属性protected mode
  3. webpack 入门
  4. js生成当前时间
  5. python(pyqt)开发环境搭建
  6. hdu5432 二分
  7. ECLIPSE下SVN的创建分支/合并/切换使用
  8. 5X + 2Y +Z = 50 的所有非负整数解
  9. 重新想象 Windows 8 Store Apps (35) - 通知: Toast 详解
  10. java中的代码块执行顺序
  11. 修改ubuntu的默认python版本
  12. JNI生成C的头文件
  13. 关于数据汇总方面返回Json数据的小小心得
  14. PHP垃圾回收机制理解
  15. Altium designer知识总结
  16. JavaScript定义函数
  17. threejs绕轴转,粒子系统,控制器操作等(二)
  18. cygwin 安装包管理器 apt-cyg
  19. 采用shell脚本定时清理Tomcat日志
  20. flask使用配置文件

热门文章

  1. Query to find the eligible indexes for rebuilding
  2. c#设计模式3抽象工厂模式(Abstract Factory)
  3. Python.SQLAlchemy.0
  4. 洛谷1984 [SDOI2008]烧水问题
  5. 201621123008 《Java程序设计》第14周学习总结
  6. ok,机房小感
  7. Java界面编程—事件监听机制
  8. Tomcat的下载、安装、启动与关闭
  9. JS Async Callback
  10. rails 新建user的phonenumber字段