其实就是考察 节流 的实现。一种是对事件节流,也就是按次数;一种是对时间节流,需要进行定时。关于节流,思否上已经有很多实现了(思否真该出个 wiki 板块,方便引用),当然,这些人往往只考虑时间,按次数节流的实现不多。时间节流的实现很多,这里不再赘述,写一个可能管用的次数节流: const throttleByCount = (callback, count = 10) => { let counter = 0; return (...args) => { counter ++; if(counter >= count){ counter = 0; return callback(...args); } else { return null } } } const K = 20; // 每20次 request 触发一次 // 用来处理 request const requestHandler = throttleByCount((res) => { // 每隔指定的次数就会被调用一次 }, K); // 在需要处理 request 的地方调用 requestHandler 就可以 // 这里假设是一个DOM 被点击后调用 request 处理 someDOM.on('click', requestHandler); 谈不上系统,就是一个小模块。
其实就是考察 节流 的实现。一种是对事件节流,也就是按次数;一种是对时间节流,需要进行定时。
关于节流,思否上已经有很多实现了(思否真该出个
wiki
板块,方便引用),当然,这些人往往只考虑时间,按次数节流的实现不多。时间节流的实现很多,这里不再赘述,写一个可能管用的次数节流:
谈不上系统,就是一个小模块。