我正在尝试在我的网站上实施 ReCaptcha v3。我希望它的代码在 1 秒内执行。在某些测试中,它最多需要 20 秒。
const t = Date.now()
console.log(t)
const captchaCode = await doRecaptcha()
const t2 = Date.now()
const t3 = t2 - t
console.log(t3, "time elapsed")
在我最近的测试中,t3
的值为 15011
,即 15 秒!在另一个测试中我得到了23522 'time elapsed'
。另一个测试给出 22926
持续 22.9 秒。
那是怎么回事?
这里是函数
async function doRecaptcha() {
return new Promise((resolve, reject) => {
try {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
grecaptcha.ready(function () {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
grecaptcha
.execute(googleRecaptchaSiteKey, { action: "submit" })
.then(function (captchaToken) {
resolve(captchaToken)
})
})
} catch (err) {
reject(err)
}
})
}
然后我像这样加载脚本
<svelte:head>
<script
src="https://www.google.com/recaptcha/api.js?render={googleRecaptchaSiteKey}"
async></script>
</svelte:head>
我曾经在那个脚本上有 defer
但我试着删除它,我想也许是延迟造成的。