reCaptcha v3 - отложенная загрузка
Подскажите, кто-то делал отложенную загрузку скриптов капчи v3, уж сильно она сайт, если на странице 3 и более форм с капчей
Комментарии: 1
В сниппете rcv3_html достаточно отложить загрузку через setTimeout (хотя кто-то делает через onClick). Не думаю что мой вариант самый правильный и что вообще стоит принудительно таймаутить что-либо, но меня пока так устраивает + поможет улучшить показатель TBT в PageSpeed.
Меняем вот эту строку:
на
В итоге получаем отложенную загруку скрипта на 2,5 секунды + он будет не в head, а в body за счёт замены regClientStartupScript, на regClientScript.
Меняем вот эту строку:
$modx->regClientStartupScript('<script src="https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render=' . $public . '" async></script>');
на
$modx->regClientScript('
<script>
function loadCaptcha() {
let script = document.createElement("script");
script.src = "https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render=' . $public . '";
script.async = true;
document.body.append(script);
}
setTimeout(loadCaptcha, 2500);
</script>
', true);
В итоге получаем отложенную загруку скрипта на 2,5 секунды + он будет не в head, а в body за счёт замены regClientStartupScript, на regClientScript.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.