Как я могу установить интервал не для первой загрузки, а для второй загрузки и загрузки после этого - PullRequest
0 голосов
/ 29 марта 2020

Я использую setInterval для моего кода рекапчи 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);

1 Ответ

0 голосов
/ 29 марта 2020

Как разрешить загрузку приведенного ниже кода в первый раз без setInterval и КАЖДЫЙ раз после первого интервала 10 секунд?

Для этого можно использовать 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
});

...