1.合并javascript文件:
减少http请求数量
Apache Ant 通过concat 任务提供合并几个文件的能力(注意文件的依赖关系)
<target name="js.concatenate">
<concat destfile="${build.dir}/concatenated.js">
<filelist dir="${src.dir}"
files="a.js, b.js"/>
<fileset dir="${src.dir}"
includes="*.js"
excludes="a.js, b.js"/>
</concat>
</target>
2.预部署javascript文件
由于没有专门的javascript设计的预处理器 接近的C预处理器cpp
<target name="js.preprocess" depends="js.concatenate">
<apply executable="cpp" dest="${build.dir}">
<fileset dir="${build.dir}"
includes="concatenated.js"/>
<arg line="-P -C -DDEBUG"/>
<srcfile/>
<targetfile/>
<mapper type="glob"
from="concatenated.js"
to="preprocessed.js"/>
</apply>
</target>
3.JavaScript紧凑
是指剔除一个JavaScript文件无关中的一切内容过程 包括注释和不必要的空格 这样文件尺寸可以减少和下载速度更快
YUI压缩器
4.开发过程中编译时和运行时
链接 预处理 和紧凑可以在编译是发生 同样可以在运行时发生 但是普遍规则是 只要能够在编译时完成的工作 不要在运行时去完成。
5.javascript 压缩
当网页浏览器请求一个资源时 通常发送一个Accept-Encoding的http头 让网页服务器知道传输所支持的编码类型 这信息主要用于允许文档压缩以获得更快的下载速度
Accept-Encoding 取值范围:gzip compress deflate identity
Packer压缩
YUI压缩
6.缓存javascript
HTML 5离线缓存
7.使用内容传递网CDN
按照地理分布的计算机网络 通过以太网负责向最终用户分发内容 可以极大的减少网络延迟
8.部署javascript资源
拷贝文件到一个或多个远程主机(本地的挂载的文件系统 或使用ftp或Scp)
<apply executable="scp" fail parallel="true">
<fileset dir="${build.dir}" includes="*.js"/>
<srcfile/>
<arg line="${live.server}:/var/www/html/"/>
</apply>
运行Shell命令启动SSh服务
工具:
Profiling 性能分析
Network analysis 网络分析
时间戳分析
YUI分析器
Firebug调试(fixfox) chrome调试器
控制台面板分析
Console API分析
网络面板分析