编写可维护javascript学习笔记5

第十二章 浏览器嗅觉

12.1 User-Agent 检测
最早的浏览器嗅觉即用户代理(User-Agent)检测,
 
12.2 特性检测
特性检测不依赖于浏览器
例如:
	if(document.getElementById){
		// 做些什么
	}

例:
	function setAnimation (callback) {
		if (window.requestAnimationFrame) { //标准
			return requestAnimationFrame(callback);
		} else if (window.mozRequestAnimationFrame) { //firefox
			return mozRequestAnimationFrame(callback);
		} else if (window.webkitRequestAnimationFrame) {
			return webkitRequestAnimationFrame(callback);
		} else if (window.oRequestAnimationFrame) {
			return oRequestAnimationFrame(callback);
		} else if (window.msRequestAnimationFrame) {
			return msRequestAnimationFrame(callback);
		} else {
			return setTimeout(callback,0);
		} 
	}

12.3 避免特性推断
	特性检测只推断出当前的特性是否可用,并没有附加其他额外信息
12.4 避免浏览器推断
 	通过特性检测从而推断出是某个浏览器 是很糟糕的做法,这叫做 浏览器推断,是一种错误的实践

12.5 应当如何取舍
	尽可能的使用特性检测

自动化
第十三章 文件和目录结构

13.1 最佳实践
	*一个文件只包含一个对象
	*相关的文件用目录分组
	*保持第三方代码的独立
	*确定创建的位置

13.2 基本结构 
	javascript目录下方放置如下三个主要的目录是当下流行的做法
		*build
		用来放置最终构建后的文件,理想情况下这个目录不应该提交
		*src
		用来放置所有的原文件,包括用来进行文件分组的子目录
		*test  或者   tests
		用来放置所有的测试文件,于src目录一一对应
		
		// 另外
		*release
		始终包含最新的稳定发行版本
		
		src目录下每个子目录都代表一个单独的YUI模块
			*docs
			文档目录
			*js
			JavaScript源文件目录
			*meta
			用于存放模块元信息
			*teste
			用于存放模块的测试代码

第十四章 Ant

Ant构建工具,最初为java项目而量身定做

14.1 安装
运行Ant需要java环境。
参照 http://ant.apache.org/manual/install.html

14.2 配置文件
Ant的主要配置文件是build.xml .build.xml 用来告诉Ant如何执行构建过程,Ant构建系统有3个基本组成部分
	*任务
	任务是构建过程中的一个步骤,比如执行一个程序或者复制一个文件
	*目标
	一组有序任务的集合
	*项目
	所有目标的容器

	构建系统的每个部分都有一个xml元素表示。build.xml文件示例如下
		<project name="maintainablejs" default="hello">
			<target name="hello">
				<echo>Hello world!</echo>
			</target>
		</project>		

14.3 执行构建

14.4 目标操作的依赖
	<project name="maintainablejs" default="hello">
			<target name="hello">
				<echo>Hello world!</echo>
			</target>

			<target name="goodbye" depends="hello">
				<echo>Goodbye!</echo>
			</target>
	</project>
	目标goodbye依赖于hello,因此输入ant goodbye会输出以下结果:
		hello:
     		[echo] Hello world!

		goodbye:
		     [echo] Goodbye!
		
		BUILD SUCCESSFUL
		Total time: 0 seconds

14.5 属性
	Ant中的属性类似于kavascript	中的变量,因为他们通常都包含数据,这些数据在执行脚本期间都可以被操作和改变。比如,<property>标签定义一个属性。
	
		<project name="maintainablejs">
			<property name="version" value="0.1.0"/>
		</project>
	
		每个<property>都需要指明name和value属性。定义后便可通过${version}来引用,比如:
	
			<target name="hello">
									<echo>Version is ${version}</echo>
			</target>
	
		当前执行这段Ant脚本时会输出:
			[echo] Version is 0.1.0

	
	属性也可以定义在外部的java属性中,并直接载入到Ant中。例如:
	文件 -> build.properties
		version = 0.1.0
		copyright = Copyright 2019 Nichlias C. Zakas. All right reserved.

	可以使用<loadproperties>元素通过srcfile属性指明文件路径来把上述特性导入到Ant脚本中
		<project name="maintainablejs" default="version">
			<loadproperties srcfile="build.properties" />
			<target name="version">
						<echo>Version is ${version}</echo>
			</target>
		</project>
		
	对于需要定义大量的属性或者需要在多个Ant脚之间公用的属性而言,最好把它们放在一个独立的java属性文件中
	最好至少声明几个用于整个项目的属性,例如:
		src.dir
		源代码目录的根目录
		build.dir
		放置最终构建后文件的路劲
		lib.dir
		依赖文件的路径

14.6 Buildr项目
	Buildr是一个寻找和收集前端相关且语法简单的Ant任务的开源项目。Buildr 囊括了所有这些可能在你的Ant脚本中使用到的各种工具,把它们封装成了任务
	在使用之前,你首先必须获取一份源代码,只要在你的电脑上有这个目录结构,你就可以用这条命令导入所有的任务
		<inport file="/path/to/buildr/buildr.xml" />
	通过这条命令可以在你的build.xml文件中使用所有的Builedr中定义的自定义任务。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值