第十五章 javascript 与 XML
这一章主要讲述js对xml的操作,由于不甚熟悉,第一遍直接略过
第十六章 E4X
E4X (ECMASscript for XML ) 以ECMA-357为标准发布,也是对xml定义新的语法,这一章也故而略过。
第十七章 Ajax 与 Json
做为一单独的块,准备单独腾出时间来摸索
第十八章 高级技巧
说是高级技巧确实是高级技巧,这章主要是对js使用中的问题进行总结
1. 高级函数
所谓高级函数,讲了四个内容:
a) 作用域安全的构造函数: 防止this作用域穿破
b) 惰性载入函数: 它表示函数执行的分支仅发生一次:即函数第一次调用的时候。在第一次调用的过程中,该函数会被覆盖为另外一个按合适方式执行的函数,这样任何对原函数的调用都不用再经过执行的分支了。
c) 函数绑定: 它要创建一个函数,可以在特定环境中以指定参数调用另一个函数。
d) 函数柯里化( function currying):它用于创建已经设置好了一个或多个参数的函数
2. 高级定时器:setTimeou,setInterval
3. 自定义事件:
4. 拖放:onmouseup,onmousemove,onmousedwon三个事件的操作
第十九章 客户端存储cookies
说白了,主要是对cookie的操作
l ie6 及更低版本限制每个域名最多20个 cookie
l ie7之后每个域名最多50个cookie
l Firefox 限制每个域名最多50个cookie
l Opera限制每个域名最多50个cookie
l Safari 和 Chrome 对于每个域名的cookie数量限制没有硬性规定
cookie成分:
名称,值,域,路径,失效时间,安全标志
js操作cookie,主要是document.cook来操作
第二十章 最佳实践
1. 可维护性:
可理解性,直观性,可适应性,可扩展性,可调试性
2. 松散耦合
a) 解耦HTML/CSS/Javascript:
i. HTML是数据,javascript是行为,CSS是表现
b) 解耦应用逻辑/事件处理程序
编程实现:
1. 尊重对象的所有权
2. 避免全局变量
3. 避免与null进行比较
4. 使用常量
3. 性能:
Geoffrey认为 Javascript的性能相对于其它知名编程语言:比编译好的C慢5000倍;比解释型的Java慢100倍;比解释型的Perl慢10倍
a. 注意作用域:
a) 避免全局查找
b) 避免with语句
b. 选择正确的方法
a) 避免不必要的属性查找
b) 优化循环
c) 展开循环
d) 避免双重解释
e) 性能的其它注意事项:
i. 原生方法比较快:原生的Math中的方法比较快
ii. Switch语句比较快
iii. 位运算比较快
c. 最小化语句:
a) 多个变量声明 var a,b,c
b) 插入迭代值 i++的运用
c) 使用数组或对象字面量var arr = [], obj = {name:jikey, age: 29};
4. 优化Dom交互
a) 最小化现场更新
b) 尽量使用innerHTML
c) 使用事件代理
d) 注意NodeList
第二十一章 未来的API
1. 选择器API 这个我感觉是跟jquery学的
a) querySelector 大概相当于jquery里边的$() 该方法接受一个CSS查询并返回匹配该模式的第一个子孙元素,没有匹配
b) querySelectorAll 接受跟querySelector一样的参数,返回的是所有匹配的节点而非单个。返回一个叫StaticNodeList的新类型实例。
c) 现今和未来的支持情况
i. html5
类相关的增加
1. getElementsByClassName 单个参数,返回一个NodeList
2. classList add,has,remove,toggle
d) 跨文档消息传递
i. data,origin,source
e) 媒体元素
i. video,audio
f) <canvas>