I'我用setTimeout加载脚本,你能找到一个更快的方法吗

I'm loading scripts with setTimeout, can you find a faster way?

本文关键字:一个 方法 我用 setTimeout 加载 脚本      更新时间:2023-09-26

我有一个名为main.min.js的文件。这个文件有一些部分需要库pixi.min.js。我能想出的加载这两个部分的最快方法是:

HTML

<script async src="//cdnjs.cloudflare.com/ajax/libs/pixi.js/3.0.11/pixi.min.js"></script>
<script async src="static/js/main.min.js"></script>

JAVASCRIPT

function waitForJS() {
        var shouldStop;
        if (typeof window.PIXI !== "undefined") {
            shouldStop = true;
        }
        if (shouldStop === true) {
            //PIXI has loaded
            ThePixiFunction();
            return;
        }
        setTimeout(waitForJS,30);
} waitForJS();

我认为这是(对我来说)最快的方法的原因是,两个文件同时开始加载,但main.min.js在PIXI加载之前就开始执行,只有需要PIXI的函数在等待它。这是不是有我忽略的地方?或者有没有更好的方法来加载这两个文件?

您可以将调用Pixi相关行为的调用拆分到一个单独的文件中,然后正常加载它们:

<script src="static/js/main.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/pixi.js/3.0.11/pixi.min.js"></script>
<script src="static/js/invokePIXIfunction.min.js></script>

原来这很愚蠢,我找到了一种新方法:

HTML

<script src="static/js/main.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/pixi.js/3.0.11/pixi.min.js" onload="PIXILoaded();"></script>

JS(在main.min.JS中)

window.PIXILoaded = function() {
        initPixiFunction();
};

请注意,您应该避免全局