8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

为什么 Google reCAPTCHA v3 在第一个令牌请求后花费的时间明显更长?

Mohammad Fatoni 2月前

26 0

我在我的 Web 应用程序中使用 Google reCAPTCHA v3。我实现了一个函数“runCaptcha”,该函数利用“grecaptcha.execute”来获取令牌。但是,我注意到每次调用这个函数时

我在我的 Web 应用程序中使用 Google reCAPTCHA v3。我实现了一个函数“runCaptcha”,该函数利用“grecaptcha.execute”来获取令牌。但是,我注意到每次调用此函数时,接收新令牌所需的时间都会逐渐变长。我不确定为什么会发生这种情况以及如何解决它。

问题:

为什么在第一次请求后获取新令牌需要更长的时间,为什么这个更长的时间保持不变?我初始化 grecaptcha 或管理其实例的方式有问题吗?使用 grecaptcha.execute 是否存在已知的性能问题?任何帮助或指导都将不胜感激!提前谢谢您。

测量:我还进行了一些测量,获取令牌的响应时间似乎随着每次后续调用而增加。以下是观察到的时间的一些示例:

第一次测量:

  • 第一次调用:reCaptcha 时间:888.7578125 毫秒(我只对第一次调用感到满意)
  • 第二次调用:reCaptcha 时间:15654.778076171875 毫秒
  • 第三次调用:reCaptcha 时间:15729.93408203125 毫秒
  • 第四次调用:reCaptcha 时间:15709.18603515625 毫秒
  • 第五次调用:reCaptcha 时间:15377.43505859375 毫秒

第二次测量

  • 第一次调用:reCaptcha 时间:787.9111328125 毫秒(我只对第一次调用感到满意)
  • 第二次调用:reCaptcha 时间:15916.755126953125 毫秒
  • 第三次调用:reCaptcha 时间:15067.10205078125 毫秒
  • 第四次调用:reCaptcha 时间:15615.06201171875 毫秒
  • 第五次调用:reCaptcha 时间:15400.135986328125 毫秒
  • 第六次调用:reCaptcha 时间:15716.2509765625 毫秒
  • 第七次调用:reCaptcha 时间:15990.376953125 毫秒
  • 第八次调用:reCaptcha 时间:15700.85205078125 毫秒
export function runCaptcha(siteKey, captchaAction) {
    return new Promise((resolve, reject) => {
        if (typeof grecaptcha === 'undefined') {
            reject('grecaptcha is not defined');
            return;
        }
        grecaptcha.ready(function () {
            grecaptcha.execute(siteKey, { action: captchaAction }).then(function (token) {
                resolve(token);
            }).catch(function (error) {
                reject('Failed to execute reCAPTCHA: ' + error);
            });
        });
    });
};

document.getElementById('submitButton').addEventListener('click', function (event) {
    console.time('reCaptcha time');
    if (siteKey && siteKey.value.length > 0 && action && action.value.length > 0) {
        runCaptcha(siteKey.value, action.value)
            .then(token => {
                document.getElementById('txtCaptchaToken').value = token;
                console.timeEnd('reCaptcha time');
                if (form != null)
                    form.requestSubmit();
            });
    }
   
});
帖子版权声明 1、本帖标题:为什么 Google reCAPTCHA v3 在第一个令牌请求后花费的时间明显更长?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Mohammad Fatoni在本站《javascript》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这确实是一个 Google 工程师的问题。他们可能只是在假设存在恶意的情况下对后续请求进行额外检查。

  • @isherwood 当然,我专门收集了更多数据,这些结果大致相同:第一次:787.9111328125 毫秒,第二次:15916.755126953125 毫秒,第三次:reCaptcha 时间:15067.10205078125 毫秒,第四次:15615.06201171875 毫秒,第五次:15400.135986328125 毫秒,第六次 15716.2509765625 毫秒。第一次和所有其他测试之间有很大差异,从 0.78 秒到 15-16 秒

返回
作者最近主题: