前端优化,包括css,jss,img,cookie
前端优化,来自某懒观看麦子学院视频的笔记。
- 尽可能减少HTTP的请求数
- 使用CDN
- 添加Expirs头,或者Cache-control
- Gzip组件压缩文件内容
- 将CSS放在页面上方
- 将脚本放到页面下方
- 减少CSS中Expressions:只在IE中使用,在css中通过js动态赋值
- 将javaScript和CSS独立成外部文件
- 减少DNS查询
- 压缩javaScript和CSS
- 避免重定向
- 移除重复的脚本
- 配置实体标签(ETags):客户端请求文件,服务器读取文件标签,如果未修改就直接返回304.
- 使用AJAX缓存
- 避免空的src href属性
- 尽早地刷新缓冲
- 使用get来完成ajax
- 延迟加载:分批加载
- 预先加载:客户端缓存js文件等
- 减少DOM元素
- 避免404页面
- 高效缩写CSS
- bigpipe技术,分层显示,先出框架,再加载框架内的物体。
- 使用替代@import
- 避免使用滤镜:只在旧版IE中使用,修正图片问题
- CSS无图片技术:css image(css引入背景图片比较占资源,如果用css绘制类似小三角这样的简单图片,则大大减负)
- smush.it、转png格式压缩图片大小
- 合并和拆分图片:合并:CSS sprites 将小图片合成大图片,再用背景定位显示图标。拆分:多线程拆分后下载。
- 多域名下载图片
- IE6缓存背景图片
- 预加载图片
- 减小cookie的体积,移除不必要的cookie(注意在适应级别上设置cookie,以便子域名不受影响),设置cookie域
- 静态资源使用无cookie域名
- 设置合理的cookie过期时间
- 优化js循环语句。将length属性抽取至判断语句之外。for(in)效率最差,for(;;)=while();
- js使用闭包进行缓存
- js不再循环中创建函数。改为抽取函数后调用
- js手动消除引用,告诉垃圾回收器。不推荐delete函数,推荐使用=null的方法。
- 慎用js全局对象,因为不会被垃圾回收
- js绑定的事件不需要后取消绑定。推荐用on,防止多次绑定
- 慎用js闭包,可能会导致内存泄漏
- js少用eval,特别是在循环内。json[i][变量]=1这样的语句不要使用eval
- 使用json格式初始化js的对象和数组。而不是new一个。前者引擎直接解释,后者调用构造器。
- js使用Math.floor(),“”+的方示进行类型转换。Math是内部对象
- js使用正则处理字符串比js循环要快,但构建正则对象比较耗时,尽量抽取后复用。
- 存储时使用对象还是数组。键值对中值多样,使用对象。其他使用数组
- 数组中对象尽量一致
- 缓存ajax.函数缓存。h5中的sessionStorage(会话级)和localStorage(持久化)
- bool值的判定,通过率越小越往前。
- 工具yslow、pagespeed
前端优化,包括css,jss,img,cookie的更多相关文章
- [转] Web前端优化之 CSS篇
原文链接: http://lunax.info/archives/3097.html Web 前端优化最佳实践第四部分面向 CSS.目前共计有 6 条实践规则.另请参见 Mozilla 开发者中心的文 ...
- 前端优化:css雪碧图实践应用详解
一 为什么需要使用雪碧图 二CSS雪碧图原理及应用 前端是接近用户体验的一个项目组成部分,合适的优化能够大大减少网页响应时间,合理的资源加载自然成为了工作中的要务,现在就结合实例讲解到底什么是css雪 ...
- flask前端优化:css/js/html压缩
1.先压缩再传输,可以减少传输的大小,减少传输时间,但是压缩需要时间,所以最终页面显示是快了还是慢了,需要比较 2.先看html压缩模块:pip install Flask-HTMLmin 压缩前:大 ...
- 【前端优化之拆分CSS】前端三剑客的分分合合
几年前,我们这样写前端代码: <div id="el" style="......" onclick="......">测试&l ...
- 转:浅谈CSS在前端优化中一些值得注意的关键点
前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...
- [转] Web前端优化之 Cookie篇
原文链接: http://lunax.info/archives/3095.html Web 前端优化最佳实践第三部分面向 Cookie .目前只有 2 条实践规则. 1. 缩小 Cookie (Re ...
- [转][前端优化]使用Combres合并对js、css文件的请求
本文转自:http://www.cnblogs.com/parry/archive/2011/01/28/Reduce_Http_Request_Using_Combres_For_Js_Css.ht ...
- 【转】yahoo前端优化军规
雅虎给出了前端优化的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文(来自帕兰映像). Minimize HTTP Requests 减少http请求 图片.css ...
- Web前端优化最佳实践及工具集锦
Web前端优化最佳实践及工具集锦 发表于2013-09-23 19:47| 21315次阅读| 来源Googe & Yahoo| 118 条评论| 作者王果 编译 Web优化Google雅虎P ...
随机推荐
- JSON字符串转Map的几种方法
String json = "{"status":0,"result":{"location":{"lng": ...
- java之方法的重载(overload)
什么是重载? 在任何一个类中,允许存在一个以上的同名的方法,只要它们的参数个数或者参数类型不同即可: 重载的特点? 与返回值无关,只看参数列表.且参数列表必须不同(参数个数或参数类型).调用时,根据方 ...
- ReactNative: 使用Image图片组件
一.简介 在应用程序中,图片组件非常常见,不论是缩略图.大图.还是小图标等等,都需要使用图片组件进行显示.在Web开发中提供了<img/>标签显示图片,在iOS中提供了UIImageVie ...
- RTX5的汽车级,工业级,医疗和铁路安全认证已经通过,证书已颁发
说明: 1.当前RTX5的教程已经在制作中,使用CMSIS-RTOS V2封装层,含FreeRTOS,配套V7,V6和V5板子. 2.我们各种开发板和模块的资料汇总贴,搞了个cnblogs,临时先用 ...
- 使用opencv和numpy实现矩阵相乘和按元素相乘 matrix multiplication vs element-wise multiplication
本文首发于个人博客https://kezunlin.me/post/1e37a6/,欢迎阅读最新内容! opencv and numpy matrix multiplication vs elemen ...
- PalletOne调色板跨链的ETH提币实现
实现区块链的跨链,最主要的诉求就是Token的转移,而Token的跨链转移又分为充币和提币2种操作.以PalletOne调色板来说,如果要把ETH跨链到PalletOne上来流转,就是ETH的充币操作 ...
- Java题库——Chapter8 对象和类
1)________ represents an entity(实体) in the real world that can be distinctly identified. 1) _______ ...
- php反序列化漏洞绕过魔术方法 __wakeup
0x01 前言 前天学校的ctf比赛,有一道题是关于php反序列化漏洞绕过wakeup,最后跟着大佬们学到了一波姿势.. 0x02 原理 序列化与反序列化简单介绍 序列化:把复杂的数据类型压缩到一个字 ...
- Git如何把本地代码推送到远程仓库
Git如何把本地代码推送到远程仓库 1. 初始化版本库 $ git init 2. 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 $ git add . 3. 把添加的文件提交到版 ...
- DBUtils框架的使用(上)
昨天做了这么多的铺垫,当然就是为了引出今天的DBUtils框架了,它的实现原理跟我们编写的简易框架是类似的. 话不多说,进入正题. commons-dbutils 是 Apache 组织提供的一个开源 ...