DOM 小记

  • 创建一个文档片段,可以减少渲染次数,优化页面加载效果
document.createDocumentFragment()

var navbar = document.querySelector('.navbar');
var fragment = document.createDocumentFragment();
for(var i=0;i<5;i++){
  var li = document.createElement('li');
  var text = document.createTextNode('hello'+i);
  fragment.appendChild(text);
}
navbar.appendChild(fragment);
将新增加的 li 一次性逐次赋给 fragment,然后由 fragment 一次性赋给ul,页面只需渲染一次
  • 自定义事件实例
<body>
  <div class="box box1">
    <input type="text">
  </div>
  <div class="box box2"></div>
  <script>
    var EventCenter = {
  on: function(type, handler){
    document.addEventListener(type, handler)
  },
  fire: function(type, data){
    return document.dispatchEvent(new CustomEvent(type, {
      detail: data
    }))
  }
}

document.querySelector('.box1 input').oninput=function(){
  EventCenter.fire('box1input',this.value)
}

EventCenter.on('box1input',function(e){
  document.querySelector('.box2').innerText = e.detail;
})
  </script>
</body>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,795评论 1 32
  •   DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API(应用程序编程接口)。   DOM 描绘...
    霜天晓阅读 9,067评论 0 7
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,378评论 0 7
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,862评论 1 11
  • 错过太阳而流泪的人 是的,因错过太阳而流泪的人,不要把月亮也错过了。 微信公众号:橙20 经常可以看见一个蹬三轮车...
    橙20阅读 1,729评论 0 0