在正常情况下(用户慢慢地操作):鼠标进入,每一个一级分类,都会触发鼠标进入事件
非正常情况(用户操作很快):本身全部的一级分类都应该触发鼠标进入事件,但是经过测试,只有部分被触发了, 就是由于用户行为过快,导致浏览器反应不过来。如果当前回调函数中有一些大量业务,有可能会出现卡顿现象
2.节流:控制流量,单位时间内事件只能触发一次,在规定的间隔时间范围内不会重复触发回调,只有大于这个时间间隔才会触发回调,把频繁触发变为少量触发。假如回调函数里面有很多的业务代码,就可以给浏览器充裕的时间去解析。(底层原理闭包+延时器)时间段
案例:计数,轮播图 三级联动等 _.trottle
3.防抖:防止抖动,单位时间内事件触发会被重置,避免事件被误伤触发多次。前面的所有触发都会被取消,最后一次执行在规定的时间之后才会触发,也就是说如果连续快速的触发,只会执行一次。(底层原理闭包+延时器)。时刻
案例:文本框搜索,想要让浏览器在输入完最后一个字的时候触发相应的函数,_.debounce