我如何设置间隔而不是第一次加载,而是第二次加载和之后的加载

How can i set interval not on the first load but second load and load after that

我正在使用 setInterval 作为我的 recaptcha javascript 代码,因为我的大部分表单都很长,令牌将过期,用户需要重新填写表单。

我喜欢代码现在的样子,除了加载令牌还需要 10 秒。我还有 1 个输入供用户填写,可以在 10 秒内提交,然后会出现 recaptcha 错误。

我怎样才能让下面的代码在没有 setInterval 的情况下第一次加载,并且在第一次加载后每次都以 10 秒的间隔加载?

感谢您的宝贵时间。

  setInterval(function(){
  grecaptcha.ready(function() {
      grecaptcha.execute('<?php echo RECAPTCHA_SITE_KEY; ?>', {action: 'this_form'}).then(function(token) {
        $('#token').val(token);
        $('#action').val('this_form');
      });
  });
}, 10000);

How can i let the code below load the first time without setInterval and EVERY time after the first time to be with 10 seconds interval?

您可以为此使用 setTimeout。试一试:


function loadCaptcha() {
  grecaptcha.ready(function() {
      grecaptcha.execute('<?php echo RECAPTCHA_SITE_KEY; ?>', {action: 'this_form'}).then(function(token) {
        $('#token').val(token);
        $('#action').val('this_form');
      });
  });
}

$(document).ready(function() {
  loadCaptcha();
  setTimeout(function() {
    loadCaptcha();
    setInterval(loadCaptcha, 10 * 1000); // fire every 10 sec
  }, 10 * 1000); // fire only one time after 10 sec
});