油门纯 javascript

throttle with pure javascript

你好,我刚开始一个小节点项目,在将 throttle 应用到我的 submit 按钮时遇到了问题。

我正在使用 form 标签和 submit 标签作为接收特定数据的按钮。但是我的一些用户在加载时向 submit 按钮发送垃圾邮件,结果它调用了多个 API 调用。我想防止这种情况并认为我必须使用 throttle

我正在尝试使用 npm 包中的这个模块 throttle-debounce

它提供的解释是:

import { throttle, debounce } from 'throttle-debounce';

throttle(300, function () {
    // Throttled function
});

我首先在控制台上使用 npm install throttle-debounce --save 安装了模块。然后我在 script 标签中添加了上面的代码。但我不知道下一步该怎么做。有人请帮助。

我的代码(简化版)目前看起来像这样:

let body1=`
<form action="/client/123" method="post">
  <input type="number" name="return" value="1">              
  <input type="submit" value="send">
</form>
<script>
import { throttle, debounce } from 'throttle-debounce';
throttle(300, function () {

});
</script>`
let html = templete.HTML(body1);
response.send(html);  

您不需要限制功能来阻止多次提交。 我认为您应该在触发第一次提交后阻止提交按钮。

disable 属性添加到提交按钮或在您的 javascript 中以 submitState = 'submitted' 之类的状态阻止它并检查是否未设置为已提交。