Javascript 如何更快地在索引中加载内联源
html文件与网页包和pahser。所有游戏代码和外部库都内联编译到index.html 有人知道一种实现内联源代码但页面加载速度更快的方法吗?以某种方式加载带有嵌入图像的页面,然后加载外部脚本 我之所以需要它,是因为我正在为unity制作一个可播放的广告,但是他们的QA由于加载缓慢而一直未能通过我的广告。他们没有提供任何关于特定加载时间的要求,所以我需要对此进行猜测 目前,我的索引页是在一个代码块中导出的,带有javascript的内联源代码。我注意到其他一些广告商的游戏将所有代码分割成多个标签,这样可以更快地加载吗 我试图使用块,但这只是将代码拆分,但将其保留在一个脚本块中Javascript 如何更快地在索引中加载内联源,javascript,typescript,webpack,phaser-framework,Javascript,Typescript,Webpack,Phaser Framework,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文件中然后我不知道,抱歉,太棒了,谢谢我会尝试一下,是的,资产已经相当压缩,所以我们不会从中获得任何东西而不损失很多质量,我会尝试使用加载事件,谢谢