JavaScript DOM 编程艺术(2)

  1. setAttribute是第一级 DOM 的组成部分,不使用setAttribute而通过 dom 对象属性名同样能修改属性值。但是setAttribute的好处是能修改元素的所有属性。同时可移植性好。老的属性名赋值的方法只适用于 web 文档,DOM 方法适用于任何标记语言。
  2. DOM 是一种适用于多种环境和多种程序语言的通用型 API,严格遵守DOM能避免与兼容性有关的任何问题。
  3. 标签中的onclick="..."可以把任何方法放入引号间。相当于onclick=new Function('statement')。这时需要确保新生成的函数实例最后显式的返回false,才不会触发默认事件。如果生成的函数执行返回 true, onclick事件处理函数就认为被点击了,反之返回false,则认为没有被点击,不会触发默认事件。
  4. 标签中的事件中可以适用event, thisthis指对象节点本身。
  5. childNodes获取所有子节点(元素与文本节点),在html中换行符也会产生一个文本节点。
  6. nodeType每个节点都有nodeType
  • 元素节点:1
  • 属性节点:2
  • 文本节点:3
  1. nodeValue节点的值
  • 元素的 nodeValue不会显示出来,而是显示其子节点内容

  • 元素的nodeValue与其值value不是同一个概念
  1. 相对节点:firstChild, lastChild
  2. 伪协议javascript: 使得可以通过href属性调用JS函数:,但在老的浏览器中可能会失败,这种做法并不好。
  3. #是一个仅供文档内部跳转的连接符号。未指向或某些浏览器会指向文档的头部
  4. 方法检测
  • 对象检测:检测要适用的方法是否存在
  • 浏览器嗅探技术:有时候浏览器会撒谎,因此不建议使用。
  1. 性能优化
  • 减少访问DOM和减少标记。不管什么时候,只要查询DOM元素,浏览器就会搜索整个DOM树,从中查找可能匹配的元素。过多不必要的元素只会增加DOM树的规模与查找特定元素的时间。
  • 合并和放置脚本
  • 压缩代码
平稳退化(优雅降级) 考虑用户无法使用JS或禁用JS的情况,仍确保用户能顺利浏览网站。一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。 当onclick失效时,确保href的跳转,有效时则禁止触发默认事件
渐进增强 针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
以用户为核心的设计

你可能感兴趣的:(JavaScript DOM 编程艺术(2))