gpt4 book ai didi

javascript:如何在短时间间隔内单击多个复选框时延迟提交数据?

转载 作者:行者123 更新时间:2023-11-28 03:48:02 25 4
gpt4 key购买 nike

我有一组复杂的动态 html 形式的复选框。每当用户单击一个复选框时,就会生成一个相当昂贵的查询并将其提交到远程服务器。我想根据用户的下一步操作延迟此提交操作。如果用户快速点击多个复选框,所有第一次点击都应该被丢弃,只有最后一次被处理并在 1 秒左右后最终提交。也许这是一个常见问题,但我以前从未使用过超时。

最佳答案

您尝试使用的方法称为去抖动。
我的 javascript 中通常有一个通用的去抖功能:

var debounce=function(func, threshold, execAsap) {
var timeout;
return function debounced () {
var obj = this, args = arguments;
function delayed () {
if (!execAsap)
func.apply(obj, args);
timeout = null;
};
if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
};

然后当某些东西需要去抖动时,我通常会去抖函数,
在你的情况下,它可能是这样的:

$("checkbox").click(debounce(callBackFunction,1000));

其中 callbackFunction 是执行“昂贵的 jquery”的函数,1000 是超时。

应用上面的内容意味着 callbackFunction 在 1 秒超时时被调用,如果它以任何更短的间隔被调用,调用将被忽略。

关于javascript:如何在短时间间隔内单击多个复选框时延迟提交数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2928931/

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