Javascript 站点加载问题:Angular 6项目加载时间过长

Javascript 站点加载问题:Angular 6项目加载时间过长,javascript,css,angular,performance,sass,Javascript,Css,Angular,Performance,Sass,在上图中,很明显我的应用程序第一次加载花费的时间太长(如图所示为3分钟)。我找不到真正的原因 有关我的申请的一些详细信息: 我的项目中总共只有13个组件 我没有使用延迟加载,因为在我看来,它不够大,无法使用延迟加载。因为构建后main.js文件大小只有2.4MB 为了缩小尺寸,我甚至删除了spec.ts文件和不需要的.scss文件 整个项目中有6.svg文件 这是我用来建造房子的命令。”ng构建--prod--aot' 如果需要进一步的详细信息,我将提供,请帮助我找出延迟背后的实际原因。利用角度

在上图中,很明显我的应用程序第一次加载花费的时间太长(如图所示为3分钟)。我找不到真正的原因

有关我的申请的一些详细信息:

  • 我的项目中总共只有13个组件
  • 我没有使用延迟加载,因为在我看来,它不够大,无法使用延迟加载。因为构建后main.js文件大小只有2.4MB
  • 为了缩小尺寸,我甚至删除了spec.ts文件和不需要的.scss文件
  • 整个项目中有6.svg文件
  • 这是我用来建造房子的命令。”ng构建--prod--aot'

  • 如果需要进一步的详细信息,我将提供,请帮助我找出延迟背后的实际原因。

    利用角度路由器和模块延迟加载。例如,创建相关组件的模块,并在访问vie时加载特定的js文件

    在本例中,当访问
    customer
    route时,它将加载相关的js文件,其他模块也是如此

    const routes: Routes = [
      {
        path: 'customers',
        loadChildren: './customers/customers.module#CustomersModule'
      },
      {
        path: 'orders',
        loadChildren: './orders/orders.module#OrdersModule'
      }
    ];
    

    您还可以运行
    ngbuild--prod
    。这将压缩代码,消除死代码

    利用角度路由器和模块延迟加载的优势。例如,创建相关组件的模块,并在访问vie时加载特定的js文件

    在本例中,当访问
    customer
    route时,它将加载相关的js文件,其他模块也是如此

    const routes: Routes = [
      {
        path: 'customers',
        loadChildren: './customers/customers.module#CustomersModule'
      },
      {
        path: 'orders',
        loadChildren: './orders/orders.module#OrdersModule'
      }
    ];
    
    您还可以运行
    ngbuild--prod
    。这将压缩代码,消除死代码

  • 它可以是13个组件,包含6K行代码。组件的数量并不重要,代码的复杂性才重要

  • 延迟加载不会减少捆绑包的大小:延迟加载是当被请求时而不是收到时加载Javascript的特性

  • spec
    文件不会出现在构建中,
    .scss
    文件被编译成JS(无论您使用的是内联样式还是URL样式,在最终构建中都没有区别)

  • 见第1点

  • 同样,与第1点类似,这取决于您运行的命令和需要编译的代码

  • 我看不到图像,但你在应用程序上运行了吗?它可能会告诉你你可以改进什么

  • 它可以是13个组件,包含6K行代码。组件的数量并不重要,代码的复杂性才重要

  • 延迟加载不会减少捆绑包的大小:延迟加载是当被请求时而不是收到时加载Javascript的特性

  • spec
    文件不会出现在构建中,
    .scss
    文件被编译成JS(无论您使用的是内联样式还是URL样式,在最终构建中都没有区别)

  • 见第1点

  • 同样,与第1点类似,这取决于您运行的命令和需要编译的代码


  • 我看不到图像,但你在应用程序上运行了吗?它可能会告诉你你可以改进什么

    2.4 MB对于生产构建来说不是很大???那么什么是大的呢
    spec.ts
    文件根本不参与捆绑包大小您是否尝试过消除https,并查看该问题是否在标准http上继续存在?除此之外,我建议在您的internet连接上运行速度测试,如果这是一个intranet解决方案,那么就开始在内部网络上的文件传输上运行速度测试。根据时间轴屏幕截图,它看起来像是花在网络上获取代码的时间-如果我记得Chrome的颜色编码正确,时间专门花在下载响应上。您应该仔细检查您的网络配置。2.4 MB对于生产构建来说不是很大???那么什么是大的呢
    spec.ts
    文件根本不参与捆绑包大小您是否尝试过消除https,并查看该问题是否在标准http上继续存在?除此之外,我建议在您的internet连接上运行速度测试,如果这是一个intranet解决方案,那么就开始在内部网络上的文件传输上运行速度测试。根据时间轴屏幕截图,它看起来像是花在网络上获取代码的时间-如果我记得Chrome的颜色编码正确,时间专门花在下载响应上。您应该仔细检查您的网络配置。非常感谢您的建议。我将尝试使用延迟加载转换代码。这可能会解决问题。延迟加载是唯一的解决方案吗?还有别的办法解决这个问题吗。。因为在这一点上转换我的整个代码会造成一点混乱。我只是想问一下,非常感谢你的建议。我将尝试使用延迟加载转换代码。这可能会解决问题。延迟加载是唯一的解决方案吗?还有别的办法解决这个问题吗。。因为在这一点上转换我的整个代码会造成一点混乱。所以我想问一下,非常感谢您的详细解释。有没有其他方法可以解决这个问题呢。因为在这一点上转换我的整个代码会造成一点混乱。延迟加载不会改变你的代码(除了路由),你可以在几秒钟内实现它。如果您的目标是减少捆绑包的大小,我建议您从模块中删除未使用的模块,删除未使用的依赖项,激活树抖动,降低代码复杂性,实现服务器端呈现,延迟加载,最后,根据您的服务器,您可以根据应用程序的URL加载文件。非常感谢您的详细解释。除了延迟加载,还有其他方法解决此问题吗。因为在这一点上转换我的整个代码会造成一点混乱。延迟加载不会改变你的代码(除了路由),你可以在几秒钟内实现它。如果您的目标是减少捆绑包的大小,我建议您从模块中删除未使用的模块,删除未使用的模块