gpt4 book ai didi

javascript - 如何限制对函数的调用?

转载 作者:行者123 更新时间:2023-11-29 10:49:31 25 4
gpt4 key购买 nike

我目前正在寻找限制函数请求数量的最佳解决方案。

例子:

function CheckData() {
if (d == "newdata") {
GetData(2);
}
}

function GetData(getcheck) {
// Ajax Request here
}

我正在寻找的解决方案是,当 CheckData 调用 GetData 时,是否有一种方法可以限制它调用 GetData 的频率,或者更好的是,如果有大量请求突然通过,是否有让它说只得到最后一个请求的方法?所以它基本上可以检查请求的频率,这样你就可以说它停止了大量请求,现在发送最后一个请求了吗?

我只是在寻找一种方法来限制 CheckData 调用 GetData 的频率,但这是尽可能减少等待的最佳方法。

我看过一些解决方案,但不确定如何将其应用于这种情况。

最佳答案

选项 1
限制函数调用次数的常用模式是:

throttledebounce

(你也可以在underscore.js中看到类似的实现)

选项 2
尽管对于 ajax,您可以创建一个队列系统来限制一次对相同资源的一个请求。

选项 3
或者,如果您的函数总是获得相同的资源,只需检查请求是否结束:

var GetData = (function() {
var running = false;
return function(getcheck) {
// exit if ajax is running
if ( running ) { return; }

running = true;

$.ajax(/* go */)
.done(function() {
/* do stuff with data */

// call it over
running = false;
});
}
}());

function CheckData() {
if (d == "newdata") {
GetData(2);
}
}

关于javascript - 如何限制对函数的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13187908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com