如何找到加载缓慢的 SAPUI5 应用程序的加载瓶颈 [英] How to find loading bottleneck of a slow-loading SAPUI5 app

查看:87
本文介绍了如何找到加载缓慢的 SAPUI5 应用程序的加载瓶颈的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个自定义 SAPUI5 应用程序,它由页面标题内容中的七个图表 (sap.viz.ui5.controls.VizFrame) 组成(嵌套在 sap.suite.ui.commons.ChartContainer) 和主要内容区域中的网格表 (sap.ui.table.Table).图表和表格的数据由 OData V2 服务提供,该应用在最新版本 (1.81.0) 上独立运行.

问题是应用加载时间过长.需要 7 到 20 秒.这对于更复杂"的应用程序来说是常见的吗?应用程序?我试图找到瓶颈,但一切看起来都很好.许多网络请求被缓存(它们需要 0 毫秒),但是,它们之间有轻微的延迟,我不明白为什么.此外,尽管我在 index.html 文件中使用了 data-sap-async=true",但控制台中还有以下警告:><块引用>

[弃用] 主线程上的同步 XMLHttpRequest 已弃用,因为它对最终用户的体验有不利影响.如需更多帮助,请查看

解决方案

正如网络"选项卡所示,有许多模块一一依次加载,其中许多甚至通过同步 XHR 加载.最重要的任务是尽可能减少同步 XHR.

  1. 我在 manifest.json 中看到只声明了少量库.但是,根据网络选项卡,该应用程序使用来自其他库的控件,这些控件未在 dependencies 中声明.
    所以应该是:

    sap.ui5":{依赖关系":{库":{sap.ui.core":{},sap.m":{},sap.ui.table":{},sap.f":{},sap.ui.unified":{},sap.ui.layout":{},sap.viz":{},sap.suite.ui.commons":{}},

    一些库被其他库传递需要(例如sap.ui.table需要sap.ui.unified).src 然后您可以添加 "sap.ui.unified": { lazy: true } 如果该库没有直接使用.

  2. 预先异步预加载通常通过 loadSyncXHR 加载的第三方模块.

    如果您检查 Network 选项卡中的 Initiator 列,您可以检测到更多通过同步 XHR 加载的模块.将这些模块添加到 data-sap-ui-modules 应该避免它:

    
    
    
    
            
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆