如何从javascript引用延迟加载的脚本标记json文件内容?

如何从javascript引用延迟加载的脚本标记json文件内容?,javascript,json,browser,deferred,script-tag,Javascript,Json,Browser,Deferred,Script Tag,我希望JSON文件的加载不会中断正常的页面加载,因此即使JSON是5mb大小,应用程序仍将执行其他关键功能,而这个巨大的JSON将在之后加载 挑战在于,既然这个JSON文件实际上是在延迟脚本标记中加载的,那么我该如何在javascript中引用它呢?如果我只是在结束之前加载JSON文件,我的javascript怎么知道呢 任何实现这一目标的想法,甚至是好的替代方案都将受到极大的赞赏 谢谢 您可以异步加载JSON,然后触发事件!比如: yourScript.js(导入时包含JSON) 您的所有ja

我希望JSON文件的加载不会中断正常的页面加载,因此即使JSON是5mb大小,应用程序仍将执行其他关键功能,而这个巨大的JSON将在之后加载

挑战在于,既然这个JSON文件实际上是在延迟脚本标记中加载的,那么我该如何在javascript中引用它呢?如果我只是在
结束之前加载JSON文件,我的javascript怎么知道呢

任何实现这一目标的想法,甚至是好的替代方案都将受到极大的赞赏


谢谢

您可以异步加载JSON,然后触发事件!比如:

yourScript.js(导入时包含JSON)

您的所有javascript现在都可以这样工作:

document.addEventListener("myJson-loaded", function(e) {
    // Prints contents of window.myJSON, you can also, access it via the global variable myJson.
    console.log(e.detail)
    /*========= All your JS code here ===========*/
});

如果您的代码库被分割到多个脚本文件中,您可以在每个脚本文件中侦听该事件

这听起来真的很有趣!奇怪的是,这个延迟的javascript文件似乎没有等待所有的js文件,至少没有完全加载。。。。这是错误的
如果我正确理解了您的问题,那么yes
deferred
并不意味着它是最后一个请求,它只是以异步方式加载。因此,事件使这成为一个无缝的过程,因为只有在加载
myJson
时才会运行下面的js代码。
document.addEventListener("myJson-loaded", function(e) {
    // Prints contents of window.myJSON, you can also, access it via the global variable myJson.
    console.log(e.detail)
    /*========= All your JS code here ===========*/
});