1.Dom机制
浏览器读取html页面后,会把节点放到内存生成一个Dom树对象。所有对Dom的操作,都是利用对Dom对象方法的调用来实现更新修改删除添加等操作。
1).对于Dom的修改,要记得最小化页面重绘。比如要添加多个节点,记得用fragment,更新大片html,用text來操作一次重绘,避免用循环对Dom进行修改等。。因为每次Dom变化,都会引起很多属性的变化,包括wdith ,height ,offsetWHTL..cliendWHTL,scrollWHTL。
2) .合理的利用冒泡机制,理解事件委托方法,大量事件的时候,优先选择委托方式,让代码脱离文档,同时对于Dom的属性操作也脱离文档流。
3) .要懂得html以及Css,很多效果并非必须用js不可,有些逻辑限制了html的布局方式,掌握了这点,就可先入为主,和builder沟通制作方法。
4)理解盒模型。
2.要懂得各个浏览器的分辨
浏览器分化严重,userAgent已经无法聪明的辨知浏览器版本,并且我们需求的不是浏览器版本,而是对于某个特定功能是否支持,所以,用特殊函数进行测试。
1)用addEventListener监测事件。來针对支持标准的内核进行事件处理
2) 在支持querySelector的浏览器下用最新的选择接口。
3)有时候用css的fixed比计算定位更准确,不需要考虑resize
4) 有时候,用-webkit-transform : translate來移动比计算位置来的更快,更有时候,还有硬件加速