[关闭]
@JRuiCoder 2015-09-07T05:56:21.000000Z 字数 1157 阅读 1215

DOM编程艺术

DOM


前言

如果人们在开始使用一种新技术时没有经过深思熟虑,而这种新技术有很快成为一种潮流,则纠正在早期阶段养成的坏习惯将会非常困难。

1、平稳退化

a、JavaScript: 伪协议

  1. <a href="javascript:alert("hello world");">example</a>

在较老的浏览器会尝试打开链接而失败,这种做法非常不好。
b、内嵌的时间处理函数

  1. <a href="#" onclick="hello(); return false;">test</a>

这种方法跟上一种方法也一样,非常不好。
c、平稳退化

  1. <a href="www.baidu.com" onclick="changeHref(this.href);return false;">test</a>

2、向后兼容

a、对象检测
不足:编写出来的函数会增加一层又一层的花括号,把测试条件如果你理解……改为如果你不理解……

  1. function hello(){
  2. if(!document.getElementsByTagName) return false;
  3. var a=document.getElementsByTagName("li");
  4. console.log(a);
  5. }

b、浏览器嗅探技术

3、性能优化

4、结构化程序设计

函数应该只有一个入口和一个出口,但是有些时候是有例外的,一个函数如果有多个出口,只要这些出口集中哦出现字函数的开头部分就可以接受的。

  1. function gallery(){
  2. if(!document.getElementsByTagName) return false;
  3. if(!document.getElementsByClassName) return false;
  4. }

5、共享onload事件

  1. window.onload=firstEvent;
  2. window.onload=secondEvent; //第二个事件会覆盖第一个事件,事件处理函数只能绑定一条指令

可以适应一个匿名函数解决

  1. window.onload=function(){
  2. firstEvent();
  3. secondEvent();
  4. }

一个弹性的解决方法,Simon Willison

  1. function onloadEvent(func){
  2. var a=window.onload;
  3. if(typeof a!='function'){
  4. window.onload=func;
  5. }else{
  6. window.onload=function(){
  7. a();
  8. func();
  9. }

6、DOM Core 和HTML-DOM

7、CSS-DOM

使用DOM脚本设置样式

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注