我想优化我的网站。当页面加载页面后甚至尝试加载一些脚本时,它将阻塞主线程。开发工具的审核将显示出更好的结果,但仍会阻塞主线程。

我找到了一种可以不受阻碍地执行代码的方法: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/

10-11 13:12