[js] 说说防止重复发送ajax请求的方法有哪些?各自有什么优缺点?
// 方法一 防抖function debounce(f, ms) {
let time;
return function(){
let arg = Array.prototype.slice.call(arguments, 1);
if(time) {
clearTimeout(time);
}
time = setTimeout(function(){
f.apply(this, arg)
},ms)
}
}// 方法二 节流
function throttle(f, ms){
let lastTime = 0;
return function(){
let arg = Array.prototype.slice.call(arguments, 1);
let newTime = Date.now();
if(newTime-lastTime > ms) {
setTimeout(function(){
f.apply(this, arg)
},ms)
}
lastTime = newTime;
}
}
防抖法:在一段时间内重复请求,则取消本次请求节流法:在一段时间内只能请求一次,下次请求必须在前一次请求完成后等值法:未完成请求状态不再请求,而是完成后直接返回相同的内容
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论
主目录
与歌谣一起通关前端面试题