我想优化我的网站。当页面加载页面后甚至尝试加载一些脚本时,它将阻塞主线程。开发工具的审核将显示出更好的结果,但仍会阻塞主线程。
我找到了一种可以不受阻碍地执行代码的方法:Web Workers,但是您无权访问window
对象,这是一个问题,因为您只能执行一些不使用它的脚本。
是否有任何可用的方法加载和执行外部脚本而不会阻塞主线程?
这是我的代码:
import useScriptLoader from "@andreyradkevichasap/use-script-loader-hook";
const { load } = useScriptLoader()
Promise.all([
load({
src:
'https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/TweenMax.min.js'
}),
load({
src: 'https://code.createjs.com/1.0.0/createjs.min.js'
})
]).then(() => {
const script = document.createElement('script')
script.type = 'text/javascript'
script.async = true
script.innerHTML = 'some script'
document.body.appendChild(script)
})
最佳答案
异步运行代码不会阻塞主线程。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
关于javascript - 有没有可能在不使用Web Worker(JS)的情况下加载和执行外部脚本而不阻塞主线程的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60507024/