前端优化,来自某懒观看麦子学院视频的笔记。

  1. 尽可能减少HTTP的请求数
  2. 使用CDN
  3. 添加Expirs头,或者Cache-control
  4. Gzip组件压缩文件内容
  5. 将CSS放在页面上方
  6. 将脚本放到页面下方
  7. 减少CSS中Expressions:只在IE中使用,在css中通过js动态赋值
  8. 将javaScript和CSS独立成外部文件
  9. 减少DNS查询
  10. 压缩javaScript和CSS
  11. 避免重定向
  12. 移除重复的脚本
  13. 配置实体标签(ETags):客户端请求文件,服务器读取文件标签,如果未修改就直接返回304.
  14. 使用AJAX缓存
  15. 避免空的src href属性
  16. 尽早地刷新缓冲
  17. 使用get来完成ajax
  18. 延迟加载:分批加载
  19. 预先加载:客户端缓存js文件等
  20. 减少DOM元素
  21. 避免404页面
  22. 高效缩写CSS
  23. bigpipe技术,分层显示,先出框架,再加载框架内的物体。
  24. 使用替代@import
  25. 避免使用滤镜:只在旧版IE中使用,修正图片问题
  26. CSS无图片技术:css image(css引入背景图片比较占资源,如果用css绘制类似小三角这样的简单图片,则大大减负)
  27. smush.it、转png格式压缩图片大小
  28. 合并和拆分图片:合并:CSS sprites 将小图片合成大图片,再用背景定位显示图标。拆分:多线程拆分后下载。
  29. 多域名下载图片
  30. IE6缓存背景图片
  31. 预加载图片
  32. 减小cookie的体积,移除不必要的cookie(注意在适应级别上设置cookie,以便子域名不受影响),设置cookie域
  33. 静态资源使用无cookie域名
  34. 设置合理的cookie过期时间
  35. 优化js循环语句。将length属性抽取至判断语句之外。for(in)效率最差,for(;;)=while();
  36. js使用闭包进行缓存
  37. js不再循环中创建函数。改为抽取函数后调用
  38. js手动消除引用,告诉垃圾回收器。不推荐delete函数,推荐使用=null的方法。
  39. 慎用js全局对象,因为不会被垃圾回收
  40. js绑定的事件不需要后取消绑定。推荐用on,防止多次绑定
  41. 慎用js闭包,可能会导致内存泄漏
  42. js少用eval,特别是在循环内。json[i][变量]=1这样的语句不要使用eval
  43. 使用json格式初始化js的对象和数组。而不是new一个。前者引擎直接解释,后者调用构造器。
  44. js使用Math.floor(),“”+的方示进行类型转换。Math是内部对象
  45. js使用正则处理字符串比js循环要快,但构建正则对象比较耗时,尽量抽取后复用。
  46. 存储时使用对象还是数组。键值对中值多样,使用对象。其他使用数组
  47. 数组中对象尽量一致
  48. 缓存ajax.函数缓存。h5中的sessionStorage(会话级)和localStorage(持久化)
  49. bool值的判定,通过率越小越往前。
  50. 工具yslow、pagespeed

前端优化,包括css,jss,img,cookie的更多相关文章

  1. [转] Web前端优化之 CSS篇

    原文链接: http://lunax.info/archives/3097.html Web 前端优化最佳实践第四部分面向 CSS.目前共计有 6 条实践规则.另请参见 Mozilla 开发者中心的文 ...

  2. 前端优化:css雪碧图实践应用详解

    一 为什么需要使用雪碧图 二CSS雪碧图原理及应用 前端是接近用户体验的一个项目组成部分,合适的优化能够大大减少网页响应时间,合理的资源加载自然成为了工作中的要务,现在就结合实例讲解到底什么是css雪 ...

  3. flask前端优化:css/js/html压缩

    1.先压缩再传输,可以减少传输的大小,减少传输时间,但是压缩需要时间,所以最终页面显示是快了还是慢了,需要比较 2.先看html压缩模块:pip install Flask-HTMLmin 压缩前:大 ...

  4. 【前端优化之拆分CSS】前端三剑客的分分合合

    几年前,我们这样写前端代码: <div id="el" style="......" onclick="......">测试&l ...

  5. 转:浅谈CSS在前端优化中一些值得注意的关键点

    前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...

  6. [转] Web前端优化之 Cookie篇

    原文链接: http://lunax.info/archives/3095.html Web 前端优化最佳实践第三部分面向 Cookie .目前只有 2 条实践规则. 1. 缩小 Cookie (Re ...

  7. [转][前端优化]使用Combres合并对js、css文件的请求

    本文转自:http://www.cnblogs.com/parry/archive/2011/01/28/Reduce_Http_Request_Using_Combres_For_Js_Css.ht ...

  8. 【转】yahoo前端优化军规

    雅虎给出了前端优化的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文(来自帕兰映像). Minimize HTTP Requests 减少http请求 图片.css ...

  9. Web前端优化最佳实践及工具集锦

    Web前端优化最佳实践及工具集锦 发表于2013-09-23 19:47| 21315次阅读| 来源Googe & Yahoo| 118 条评论| 作者王果 编译 Web优化Google雅虎P ...

随机推荐

  1. C# Excel 读取导入数据库

    使用Aspose.Cells组件. 表格第一行为表头合并,第二行为数据名称,从第三行开始数据. if (xtraOpenFileDialog1.ShowDialog() == DialogResult ...

  2. 基于Python和Xtrbackup的自动化备份与还原实现

    xtrabackup是一个MySQL备份还原的常用工具,实际使用过程应该都是shell或者python封装的自动化脚本,尤其是备份.对还原来说,对于基于完整和增量备份的还原,还原差异备份需要指定增量备 ...

  3. Linux平台达梦数据库V7单实例安装方式之图形方式

    一 前言 我们在学习任何一个应用时,了解它的最初步骤通常是学会如何进行安装配置,后序才去关心如何使用,学习达梦数据库也是如此,而达梦数据库的安装提供了多种方式,接下来会一一介绍每种安装方式,达梦数据库 ...

  4. linux 执行 javac 报错 javac: command not found

    bash: javac: command not found java 版本 1.8 [root@localhost home]# java -version openjdk version &quo ...

  5. javabean的内省(Introspector)

    内省是 Java 语言对 Bean 类属性.事件的一种缺省处理方法.例如类 A 中有属性 name, 那我们可以通过 getName,setName 来得到其值或者设置新的值. 通过 getName/ ...

  6. yml和properties的加载顺序和区别

    正常的情况是先加载yml,接下来加载properties文件.如果相同的配置存在于两个文件中.最后会使用properties中的配置.最后读取的优先集最高. 两个配置文件中的端口号不一样会读取prop ...

  7. java之模板方法设计模式

    抽象类体现的就是一种模板模式的设计.抽象类作为多个子类的通用模板.子类在抽象类的基础上进行扩张和改造,但子类总体上会保留抽象类的行为方式. 解决的问题: 当功能内部一部分实现是确定的,一部分实现是不确 ...

  8. Feign Ribbon Hystrix 三者关系 | 史上最全, 深度解析

    史上最全: Feign Ribbon Hystrix 三者关系 | 深度解析 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -25[ 博客园 总入口 ] 前言 疯狂创客圈(笔者尼恩创建的 ...

  9. github仓库迁移到gitlab以及gitlab仓库迁移到另一个gitlab服务器

    一. github仓库迁移到gitlab 先进入 new project: 选择 Import project, 选择下面的github: 进入后,这里需要github的 personal acces ...

  10. Jquery中的done() fail() then() $when()到底是什么

    ajax的传统写法: $.ajax({ url: "test.html", success: function(){ alert("哈哈,成功了!"); }, ...