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

标签 javascript json browser deferred script-tag

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

挑战在于,由于这个 JSON 文件实际上是在延迟脚本标签中加载的,我应该如何在我的 javascript 中引用它?如果我只是在 </body> 结束之前加载 JSON 文件,我的 javascript 怎么知道呢? ?

我们将不胜感激任何实现这一目标的想法,甚至是好的替代方案。

谢谢!

最佳答案

您可以异步加载 JSON,然后触发一个事件!喜欢:

yourScript.js(包含 JSON 的导入)

window.myJSON = {...A lot of JSON}
const event = new CustomEvent("myJson-loaded", {"myJson": window.myJSON})
document.dispatchEvent(event)

您所有的 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 - 如何从javascript引用延迟加载的脚本标签json文件内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42837397/

相关文章:

android - 将 36 MB JSON 文件写入 Realm 数据库时 UI 被阻塞,因此无法显示进度

javascript - 如何解析这样的 Json 列表并在 HTML 中显示其元素?

browser - 我们是否必须再使用非标准/浏览器特定的 CSS 供应商前缀?

javascript - 使用 JavaScript 使用 DES 和 Base64 进行加密和解密

javascript - 如何只在有特定字符的情况下输出参数值?

javascript - 带有自定义标签的 Mapbox GL Popup 设置内容

javascript - 我正在向 anchor 标记的前面添加一个图标,但是我想阻止它多次添加图标

ios - 在 TableView 中为使用 Paging 接收的 JSON 数据添加标题标题

css 代码导致图像和表单字段在后台丢失

android - 当链接也通过深度链接重定向时在浏览器中打开