- 平稳退化:没有JS也能正常运行
- 分离js:把网页的结构和内容与JS的运动行为分开
- 向后兼容性:老版本不会因为你的JS而死掉
- 性能考虑
js->行为层;css->表现层
1. 平稳退化(搜索机器人searchbot)
window对象的open()->创建新的浏览器窗口
window.open(url,name,features)
- 三个参数都是可选的:
- 如果省略,空白的浏览器窗口
- 新窗口的名字,可以通过它在代码里与它进行通信
- 以逗号分隔的字符串,新窗口的各种属性
JS伪协议
通过一个链接来调用JS函数;真协议:用来在Internet上的计算机间传输数据包,HTTP\ FTP···
- 伪协议调用JS代码 ×
<a href="javascript:popUp('http://www.example.com/');">example</a>
- 内嵌的事件处理函数 onclick ··· ×
<a href="http://www.example.com/" onclick="this.href; return false;">example</a>
“#”
仅供文档内部使用的链接记号(
href="#"不指向任何链接
)
渐进增强
标记良好的内容就是一切。
2. 向后兼容
- 对象检测(能当做对象来对待)JS基础
把某方法打包在一个if语句里。
if(method){ statements }
×
如果不理解
if(!method){ return false; }
√
- 浏览器嗅觉(browser sniffung)
通过提取浏览器供应商提供的信息来解决向后兼容问题。风险非常大,被对象检测取代
3. 性能考虑
- 尽量少访问DOM和尽量减少标记
只是查询DOM中的某些元素,浏览器都会遍历整个DOM树
- 重构代码:学会把遍历结果保存在变量里;一组元素以参数形式传递给函数
网友评论