如何在angular应用程序中延迟加载静态JSON

如何在angular应用程序中延迟加载静态JSON,json,angular,lazy-loading,assets,Json,Angular,Lazy Loading,Assets,我想知道如何在angular应用程序中延迟加载JSON文件。据我所知,默认情况下,仅在初始渲染时加载“资源”文件夹中的静态内容,并将其显示在浏览器内存中。我只想在浏览器中按需加载特定的JSON文件。有人能解释一下怎么做吗。不强制将所有静态内容放在应用程序模块的资产文件夹中。您可以在模块级别创建资产文件夹。以便在加载模块时加载这些内容 app/ modules/ module_1/ assets/ images/

我想知道如何在angular应用程序中延迟加载JSON文件。据我所知,默认情况下,仅在初始渲染时加载“资源”文件夹中的静态内容,并将其显示在浏览器内存中。我只想在浏览器中按需加载特定的JSON文件。有人能解释一下怎么做吗。

不强制将所有静态内容放在应用程序模块的资产文件夹中。您可以在模块级别创建资产文件夹。以便在加载模块时加载这些内容

app/
    modules/
        module_1/
            assets/
                images/
                    image_module_1.png
            module_1.component.ts
            module_1.module.ts
        module_2/
            assets/
                images/
                    image_module_2.png
            module_2.component.ts
            module_2.module.ts
    app.module.ts

在上述层次结构的情况下,如果模块_2是延迟加载的,则在加载模块时也会下载资产。

据我所知,默认情况下,资产文件夹中的静态内容仅在初始渲染时加载,并且存在于浏览器内存中。这是从何处获得的?我在资产文件夹中放置了一些JSON文件。在我的HTML中,我放置了一个按钮,单击该按钮将显示JSON的某些属性。在IE上运行应用程序时,我在点击按钮前后检查了内存。它没有显著变化。此外,我还遇到了一些策略,如果我们想延迟加载资产,则需要明确地实施这些策略。所以我得出结论,默认情况下,在请求之前,必须在初始加载时在浏览器中加载资产。如果我错了,请纠正我。在您的示例中,如果您将该JSON导入到组件文件中,那么它当然不会被延迟加载,因为在构建步骤中解析了import语句。用具体的用例更新您的问题。但我几乎可以完全肯定地告诉你,你的理解是错误的。谢谢佐塔,这有助于澄清我的理解。我已经导入了文件。现在,我尝试将JSON作为HTTP资源访问,并在我的.ts文件中单击它们的URL,我可以看到JSON在dev工具的网络选项卡中单击按钮。因此,我可以得出结论,JSON是按需延迟加载的。谢谢Yash。请看上面的评论和问题。我认为这里不需要任何特定的解决方案,因为角度负载仅限于所需的资源。Rest所有资源都是按需加载的。这似乎是默认行为。