JS

说说防止重复发送ajax请求的方法有哪些?各自有什么优缺点?

发布于 2021-01-11 17:30:08
关注者
0
被浏览
111
3 个回答
  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。
    • 防抖法:在一段时间内重复请求,则取消本次请求
    • 节流法:在一段时间内只能请求一次,下次请求必须在前一次请求完成后
    • 等值法:未完成请求状态不再请求,而是完成后直接返回相同的内容
  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    // 方法一 防抖

    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;
    }
    }

知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看