Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更快地在索引中加载内联源_Javascript_Typescript_Webpack_Phaser Framework - Fatal编程技术网

Javascript 如何更快地在索引中加载内联源

Javascript 如何更快地在索引中加载内联源,javascript,typescript,webpack,phaser-framework,Javascript,Typescript,Webpack,Phaser Framework,html文件与网页包和pahser。所有游戏代码和外部库都内联编译到index.html 有人知道一种实现内联源代码但页面加载速度更快的方法吗?以某种方式加载带有嵌入图像的页面,然后加载外部脚本 我之所以需要它,是因为我正在为unity制作一个可播放的广告,但是他们的QA由于加载缓慢而一直未能通过我的广告。他们没有提供任何关于特定加载时间的要求,所以我需要对此进行猜测 目前,我的索引页是在一个代码块中导出的,带有javascript的内联源代码。我注意到其他一些广告商的游戏将所有代码分割成多个标

html文件与网页包和pahser。所有游戏代码和外部库都内联编译到index.html

有人知道一种实现内联源代码但页面加载速度更快的方法吗?以某种方式加载带有嵌入图像的页面,然后加载外部脚本

我之所以需要它,是因为我正在为unity制作一个可播放的广告,但是他们的QA由于加载缓慢而一直未能通过我的广告。他们没有提供任何关于特定加载时间的要求,所以我需要对此进行猜测

目前,我的索引页是在一个代码块中导出的,带有javascript的内联源代码。我注意到其他一些广告商的游戏将所有代码分割成多个标签,这样可以更快地加载吗

我试图使用块,但这只是将代码拆分,但将其保留在一个脚本块中

module.exports = env => {
    return {
        entry: {
            index: entryString.replace('{entryClass}', env.platform).replace('{game}', env.game ? env.game : ''),
            another: env.production ? spinePluginProd : spinePlugin,
            another: env.production ? phaserProd : phaser,
        },
        watch: env.watch == 'true',
        optimization: {
            minimizer: env.production ? [terserPlugin] : [],
        },
        output: {
            pathinfo: true,
            path: path.resolve(localDirectory, 'dist'),
            publicPath: './',
            filename: '[name].bundle.js',
        },
        optimization: {
            splitChunks: {
                chunks: 'all',
            },
        },
        plugins: getPlugins(env.platform, env.watch),
        module: {
            rules: getLoaders(env.platform, env.game),
        },
        node: {
            fs: 'empty',
            net: 'empty',
            tls: 'empty'
        },
        resolve: {
            extensions: ['.ts', '.js'],
            alias: {
                'phaser': env.production ? phaserProd : phaser,
                'spinePlugin': env.production ? spinePluginProd : spinePlugin,
                // 'spine': spine
            }
        }
    }
}

如果有人知道如何更快地加载此文件,将不胜感激。从另一方面看,Unity广告似乎只抱怨我们在2mb以上应用程序上的加载速度。2mb以下的广告似乎加载速度足够快,这就是为什么我假设它只是页面加载,而不是Phaser初始化的原因。答案可能归结于它们如何定义“缓慢加载”。通过将源代码拆分为多个脚本标记,无法更快地加载该文件,它的字节数是相同的(如果您有多个
标记,实际上会有一些额外的标记)

但是他们是如何衡量“加载速度慢”的呢?如果他们只是想看看通过网络加载文件需要多长时间,那么是的,你必须想办法使该文件变小:确保你正在有效地进行丑化/树抖动,以尽可能地减少代码,如果有必要(并且可能的话)也将其应用于库代码,并使用专用的图像压缩工具对图像进行压缩(就文件大小而言,这可能是最容易实现的成果;图像很大)


另一方面,如果他们正在测量文档的“加载”事件触发所需的时间,则您可以调整内容。默认情况下,浏览器将按顺序加载所有代码,并阻止脚本标记,因此在解释所有脚本标记之前,页面不会加载。如果您可以将大部分代码放入execution进入一个在页面加载时触发的事件处理程序,但是,浏览器将看到您已为加载事件定义了一个事件处理程序,并继续加载页面,触发加载事件,然后执行代码。这可能足以获得所需的快速度量。

检查正在加载的图像的大小,确保您正在导入的库中没有您不需要的无用功能。我们使用的唯一两个外部库是phaser和spine。我只是在寻找一些方法,尽可能提高加载速度,使用当前的一组资产,而不使用OTU疯狂地压缩它们。我查看了竞争对手的广告,它们似乎可以使用4mb的索引文件。我看到他们和我们之间的唯一区别是他们的内联脚本被拆分。您是否正在加载异步资源?调用任何API?不,我没有使用异步加载资源,而不是Phaster加载,这应该是异步的?不,没有API,我们不允许外部资源或包中的任何http调用。所有代码均已使用必须嵌入到html文件中然后我不知道,抱歉,太棒了,谢谢我会尝试一下,是的,资产已经相当压缩,所以我们不会从中获得任何东西而不损失很多质量,我会尝试使用加载事件,谢谢