规则1:减少HTTP请求
     把多个JS请求合并为一个JS请求,把多个CSS请求合并为一个CSS请求。从而减少从客户端向服务器端的请求数。
     规则3:添加Expires头
     用http请求的查看工具,我这里用的是firebug查看http请求,可以看到响应头中有Expires头,unicorn的设置的默认过期时间是30分钟。即是如果当前网页未过期,浏览器不会发请求,直接查找本地页面缓存。加速前端响应速度,减少服务器端压力。
     规则4:压缩组件
     查看http请求头参数中,有一项Accept-Encoding:gzip,deflate,响应头中有一项Content-Encoding:gzip ,这里表示请求的内容采用gzip方式进行压缩传输。减少传输文件的大小,加快页面响应。
     规则5:将样式表放在顶部
     规则6:将脚本放在底部
     浏览器的加载顺序基本是按源码从上到下加载的,把样式表放在顶部,可以加快页面样式的显示,给客户更好的体验。同理,把脚本放在底部,会避免因脚本阻塞页面内容的呈现。
     因此,最理想的情况是,整个页面只保留一个JS且放置在 标签之前,只保留一个CSS且放置在之前。
目前的unicorn设计也是尽力按这个目标来做。CSS已经精简到1个,位置也基本符合。但是结合网站的实际情况,JS的处理中涉及到一些函数依赖,必须有部分JS放在前端,供后面的JS调用。另外,ae.js这个库必须提前调用,因此,就会看到当前的searchweb页标签内,依然存在2个JS。其他的JS都遵循此规则,合并成一个,且放置在前。
     规则10:精简JavaScript
     如果你把页面源码中的js的URL输入地址栏中(用FF浏览器,IE会弹出下载框),会列出JS的内容,会发现这里的JS文件作了很大的精简。删除了多余的空格、空行、注释等。减少了JS的体积,压缩原理主要参考开源工具JSMIN。
另外,其实unicorn也做了CSS的压缩功能,但是因为目前国际站的应用中,CSS的注释因为涉及到一些兼容性处理的内容,暂时无法做压缩。这个功能虽然做了,但是默认不开启。可以在antx.properties中配置是否开启,对应配置项:alibaba.intl.compressCSS,为true时开启压缩,默认此项值为false。
     规则12:移除重复脚本
     unicorn还有一个功能是,对于一次请求中重复引入的JS或CSS,unicorn有去重功能,也就是只会调用一次。
     规则13:配置ETag
     项目设计之初,有在http请求中加入ETag标记,这个标记可以在请求时检验服务器端资源是否与客户端资源相同。如果相同,只返回带304响应码的响应头,不用重新从服务器端发送页面数据,而直接使用本地缓存。后来在测试过程中,出现页面偶尔丢失样式的情况发生,经架构、开发等判断可能是Etag标记与mod_jk冲突,因此取消了这项功能

前端性能优化之js,css调用优化的更多相关文章

  1. 前端用户体验优化: JS & CSS 各类效果代码段

    前言 不定时更新 在线预览 https://zzyper.github.io/opti... 在线预览的源码 https://github.com/zzyper/opt... 部分内容仅兼容webki ...

  2. 前端小例子 基础js css html练习

    前情提要: 学前端也有一阵了,个人感觉前端还是重要的. html 学习教程 https://www.cnblogs.com/baili-luoyun/p/10466040.html css 教程 js ...

  3. JavaScript中的尾调用优化

    文章来源自:http://www.zhufengpeixun.com/qianduanjishuziliao/javaScriptzhuanti/2017-08-08/768.html JavaScr ...

  4. iOS 的尾调用优化原理

    背景: 今天聊代码规范的问题的时候说了一下尾调用的问题. 一:概念: 什么是尾调用? 尾调用(Tail Call):某个函数的最后一步仅仅只是调用了一个函数(可以是自身,可以是另一个函数). 注意 “ ...

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

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

  6. 网站前端性能优化之javascript和css

    之前看过Yahoo团队写的一篇关于网站性能优化的文章,文章是2010年左右写的,虽然有点老,但是很多方面还是很有借鉴意义的.关于css的性能优化,他提到了如下几点: CSS性能优化 1.把样式表置于顶 ...

  7. Web性能优化-合并js与css,减少请求

    Web性能优化已经是老生常谈的话题了, 不过笔者也一直没放在心上,主要的原因还是项目的用户量以及页面中的js,css文件就那几个,感觉没什么优化的.人总要进步的嘛,最近在被angularjs吸引着,也 ...

  8. Js基础知识(五) - 前端性能优化总结

    前端性能优化总结 资源优化 缓存 最好的资源优化就是不加载资源.缓存也是最见效的优化手段.说实话,虽然说客户端缓存发生在浏览器端,但缓存主要还是服务端来控制,与我们前端关系并不是很大.但还是有必要了解 ...

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

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

随机推荐

  1. Flask(Jinja2) 服务端模板注入漏洞

    原理 参考文章: https://www.blackhat.com/docs/us-15/materials/us-15-Kettle-Server-Side-Template-Injection-R ...

  2. Hadoop2.x与Hadoop3.x副本选择机制

    HDFS 上的文件对应的 Block 保存多个副本,且提供容错机制,副本丢失或者宕机自动恢复,默认是存 3 个副本. 2.8.x之前的副本策略 官方文档说明: https://hadoop.apach ...

  3. 学习zabbix(四)

    一. 监控知识 1.硬件监控: 机房巡检,远程控制卡,IPMI 2.系统监控: cpu负载查看(指标):uptime(低于3),top(30%-70%), vmstat, mpstat 内存监控: f ...

  4. freemarker与vue使用图片路径获取问题,可双单引号一起使用则可

    <el-table :data="leftPage.datas" style="width: 100%"  @selection-change=" ...

  5. vue 3d轮播组件 vue-carousel-3d

    开发可视化项目时,需要3d轮播图,找来找去发现这个组件,引用简单,最后实现效果还不错.发现关于这个组件,能搜到的教程不多,就分享一下我的经验. 插件github地址:https://wlada.git ...

  6. Easyx库安装教程

    目录: 安装 使用 帮助文档 安装 打开Easyx官网https://easyx.cn/ 点击图中下载按钮,下载Easyx库.或者直接点此下载 双击运行 图中标注的绿色框内为官方提供的帮助文档,红色框 ...

  7. 放大器(PA+LAN)在射频上的应用

    转自 动手又动脑才会有创造 放大器,包括两种,PA与LAN,功率放大器(PA) 和低噪声放大器(LNA),在射频上,PA用于信号的输出放大,而LNA用天线端的输入放大,一般的,LAN会比PA的放大倍数 ...

  8. 细说Web API中的Blob

    在一般的Web开发中,很少会用到Blob,但Blob可以满足一些场景下的特殊需求.Blob,Binary Large Object的缩写,代表二进制类型的大对象.Blob的概念在一些数据库中有使用到, ...

  9. 判断页面环境是否在小程序的webview中

    最近公司需要做小程序项目,但是又希望能够快速开发,就想着把web端的响应式页面放到webview里快速开发.但在判断页面环境的时候出现一些问题. 环境问题 用小程序提供的wx.miniProgram. ...

  10. 前端面试题整理——手写方法解析URL参数

    //拆分字符串形式 function queryToObj() { const res = {} const search = location.search.substr(1);//去掉前面的&qu ...