reCaptcha v3 - отложенная загрузка

Подскажите, кто-то делал отложенную загрузку скриптов капчи v3, уж сильно она сайт, если на странице 3 и более форм с капчей
Dima
21 июня 2021, 15:30
modx.pro
719
0

Комментарии: 1

Андрей Чаплыгин
2 часа назад
0
В сниппете rcv3_html достаточно отложить загрузку через setTimeout (хотя кто-то делает через onClick). Не думаю что мой вариант самый правильный и что вообще стоит принудительно таймаутить что-либо, но меня пока так устраивает + поможет улучшить показатель TBT в PageSpeed.

Меняем вот эту строку:

$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.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1