一、节流和防抖分别是什么?在什么场景下使用?请分别实现一个节流函数和一个防抖函数
节流函数常用于高频触发的场景,比如滚动事件,我们不希望频繁执行绑定的函数,只想让某段时间内只执行一次,这样可以提高性能。
const throttle = (fn, wait) => {
let timeout = null;
return (...rest) => {
if (!timeout) {
timeout = setTimeout(() => {
fn(...rest);
timeout = null;
}, wait)
}
}
}
防抖函数则是只希望在触发的规定时间之后,如果没有下次触发,就去执行。比如电梯的门,一直有人进来的话就一直不会关闭,直到最后一个人进来一段时间后才会关闭。常用于防止提交按钮短时间被频繁点击、搜索的场景。
const debounce = (fn, wait) => {
let timeout = null;
return (...rest) => {
if (!timeout) {
timeout = setTimeout(() => {
fn(...rest);
timeout = null;
}, wait)
} else {
clearTimeout(timeout);
timeout = null;
}
}
}
二、怎么禁止让js读取cookie?怎么让cookie只在HTTPS下传输?
暂未接触