`
zl198751
  • 浏览: 273999 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

前段性能优化之js,css调用优化

阅读更多

     规则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且放置在</body>标签之前,只保留一个CSS且放置在</head>之前。
目前的unicorn设计也是尽力按这个目标来做。CSS已经精简到1个,位置也基本符合。但是结合网站的实际情况,JS的处理中涉及到一些函数依赖,必须有部分JS放在前端,供后面的JS调用。另外,ae.js这个库必须提前调用,因此,就会看到当前的searchweb页<head>标签内,依然存在2个JS。其他的JS都遵循此规则,合并成一个,且放置在</body>前。
     规则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 + HTMl )+ 设计报告

    (3)使用BOM调用浏览器功能1次,例如页面滚动、秒杀倒计时、打印、通知、本地存储等。 (4)使用ECharts库(https://echarts.apache.org)实现数据可视化1次。使用Swiper框架(https://www.swiper.com.cn)实现轮播图1次。 ...

    让IE支持CSS3 Media Query实现响应式Web设计,html5.js让IE(包括IE6)支持HTML5元素方法

    上面这段代码仅会在IE浏览器下运行,还有一点需要注意,在页面中调用html5.js文件必须添加在页面的head元素内,因为IE浏览器必须在元素解析前知道这个元素,所以这个js文件不能在页面底部调用。 这个html5的js文件...

    云相册-Memory网站 网页课程设计报告(JS + CSS + html)+ 报告

    (1)使用DOM和事件操作元素、属性和内容,改变外观和提高交互性共4次。例如增删留言、Tab选项卡等。 (2)使用表单和控件的常用DOM属性、方法、事件进行表单前端验证1次和其他功能1次。...(5)登录/注册(表单前段验证)

    html5shiv.js

    上面这段代码仅会在IE浏览器下运行,还有一点需要注意,在页面中调用html5.js文件必须添加在页面的head元素内,因为IE浏览器必须在元素解析前知道这个元素,所以这个js文件不能在页面底部调用。

    程序天下:JavaScript实例自学手册

    第1章 页面特效 ...1.2 页面自动最大化 1.3 页面自动刷新 ...22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性...

    《程序天下:JavaScript实例自学手册》光盘源码

    22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性的对象 22.15 用prototype实现JavaScript的继承 22.16 ...

    极品JavaScript编辑器破解插件

    前段时间在鱼的群里,经常碰到很多人问关于wordpress主题制作上的问题...问题主要集中在页面排版,css样式编写,php的简单调试/调用...在解决问题/交流的过程中,就发现,很多人对wordpress主题的制作兴趣浓厚,当然...

    jquery插件使用方法大全

    老的core.js文件被分为attribute.js, css.js, data.js, manipulation.js, traversing.js和queue.js;CSS和attribute的逻辑分离。 jQuery 1.5(2011年1月31日):该版本修复了83个bug,解决了460个问题。重大改进有:...

    精通javascript

    • 1.1.htm 多段代码相互调用 • 1.2.htm [removed]与 • 1.3.htm 调用外部JavaScript文件 • 1.3.js 1.3.htm使用的外部JavaScript文件 第2章(\第2章) • 2.1.htm Infinity应用 ...

    大名鼎鼎SWFUpload- Flash+JS 上传

     SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的...

    JavaScript笔记

    7.数据类型转换函数 :(方法前不需要对象调用的:全局函数) |--toString():转换成字符串。所有数据类型均可转换为 string 类型; |--parseInt():强制转换成整数。如果不能转换,则返回 NaN(not a number); ...

    java开源包1

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    vue中MVVM的理解 M:模型(Model):数据模型;负责数据存储 泛指后端进行的各种业务逻辑处理和数据操控,主要围绕数据库

    beforeCreate(创建前) :组件实例被创建之初,组件的属性生效之前 //beforeCreate生命周期执行的时候,data和methods中的数据都还没有初始化。不能在这个阶段使用data中的数据和methods中的方法 created(创建后)...

    精通JavaScript

    • 1.1.htm 多段代码相互调用 • 1.2.htm &lt;script&gt;与 • 1.3.htm 调用外部JavaScript文件 • 1.3.js 1.3.htm使用的外部JavaScript文件 第2章(\第2章) • 2.1.htm Infinity应用 ...

    jQuery制作简单的柱状图(自适应宽度)

    前段时间使用HTML+CSS制作了一个柱状图,今天将Javascript版的也分享一下,没用做成插件的形式,只需要调用一个函数即可,功能比较简单,使用起来也算方便,只需要将json数据传入给该函数即可,具体使用方法看完代码...

    javascript入门笔记

    4、1997年 网景 将Javascript 1.1 提供给了ECMA(欧洲计算机制造商联合会),ECMA 获取了 JS 的核心,称之为 ECMA Script (ES) 完整的JS组成: 1、核心(ES) 2、文档对象模型(Document Object Model) - DOM 允许让 ...

    火狼首页N格插件 For Discuz!7.1/7.2 GBK UTF8 BIG5.rar

    2. [优化]优化多处程序代码和JS代码 3. [新增]显示位置嵌入点 4. [新增]后台插件详细文档。 5. [更新]论坛之星改为显示用户名 6. [新增]后台增加设置帖子列表是否隐藏作者 7. [修正]论坛启用URL伪静态,列表中...

    酷播(极酷)跨平台多终端网页播放器 v4.0.zip

    9、支持视频列表连播功能,播放器采用JS与DIV CSS结合,实现外部分列表连播功能,用户可自由扩展表现形式,图片列表/文字列表/滚动列表都可实现; 10、支持视频预览功能(播放一小段),指定预览时间值,预览结束,弹...

    lz-alert-plugin:它是一个基于jquery或zepto的插件,可以替代alertBox。 -- powered by 荔枝前段.com

    1、在head头部引入jQuery.js或者zepto.js [removed][removed] [removed][removed] 2、再在head头部引入默认的样式lz.ui.css &lt;link rel="stylesheet" href="lz.ui.css" /&gt; 3、直接调用 $.lz.Alert&#40;'i am a ...

Global site tag (gtag.js) - Google Analytics