• 为什么要用事件委托and 为什么移动端click事件要设计延迟


    添加到页面的事件处理程序数量直接关系到页面的整体运行性能

      1.每个函数都是对象,都会占用内存;内存中的对象越多,性能就越差,设置事件处理函数的时间更长。

      2.事先指定所有事件处理程序而导致的Dom访问次数,会延迟整个页面的交互就绪时间。(访问次数越多,代码运行速度越慢)

    每当将事件处理程序指定给元素时,运行中的浏览器代码与支持页面交互的js代码之间就会建立一个连接。这种连接越多,页面执行起来就越慢。

    内存中那些过时不用的“空事件处理程序”也是造成web应用程序内存与性能问题的主要原因。

    如果带有事件处理程序的元素被

    innerHTML

    删除了,那么原来添加到元素中的事件处理程序极有可能无法被当作垃圾回收。

    如果预计元素可能被innerHTML替换,要使用事件委托,因为用innnerHTML删除的元素上的事件处理程序无法当作垃圾回收

    缺点:
    不是所有的事件都能冒泡的。blur、focus、load和unload不能像其它事件一样冒泡。事实上blur和focus可以用事件捕获而非事件冒泡的方法获得(在IE之外的其它浏览器中)。
    在管理鼠标事件的时候有些需要注意的地方。如果你的代码处理mousemove事件的话你遇上性能瓶颈的风险可就大了,因为mousemove事件触发非常频繁。而mouseout则因为其怪异的表现而变得很难用事件代理来管理。

    浏览器对”click“点击事件做了300ms的延迟来区分单击和双击事件(如果没有延迟,双击的第一击可能就触发了其它的行为)。

  • 相关阅读:
    LINQ to SQL 运行时动态构建查询条件
    MVC ViewData和ViewBag
    下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作
    php表单中如何获取单选按钮与复选按钮的值
    [moka同学摘录]Yii2.0开发初学者必看
    Yii路径总结
    css样式reset
    ajax onblur 用法
    jquery自定义插件——window的实现
    jQuery使用ajaxStart()和ajaxStop()方法
  • 原文地址:https://www.cnblogs.com/obeing/p/5738589.html
Copyright © 2020-2023  润新知