1

我已经在 SAPUI5 中完成了一个应用程序并部署在 FLP 中。第一次加载需要一分钟多的时间,之后只需 2 到 3 秒。

当我在 Chrome 控制台中运行性能时,它显示脚本编写需要太多时间。如何减少应用程序的初始加载时间?

索引.html

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Orders</title>
    <script id="sap-ui-bootstrap"
      src="/sap/public/bc/ui5_ui5/1/resources/sap-ui-core.js"
      data-sap-ui-libs="sap.m, sap.ui.core"
      data-sap-ui-theme="sap_belize"
      data-sap-ui-bindingSyntax="complex"
      data-sap-ui-compatVersion="edge"
      data-sap-ui-preload="async"
      data-sap-ui-resourceroots='{"orders": "."}'
    ></script>
    <script>
      sap.ui.getCore().attachInit(function () {
        sap.ui.require([
          "sap/m/Shell",
          "sap/ui/core/ComponentContainer"
        ], function (Shell, ComponentContainer) {
          new Shell({
            app: new ComponentContainer({
              height : "100%",
              name : "orders"
            })
          }).placeAt("content");
        });
      });
    </script>
  </head>
  <body class="sapUiBody" id="content">
  </body>
</html>

控制器模块

sap.ui.define([
  "./BaseController",
  "sap/ui/model/json/JSONModel",
  "sap/ui/core/routing/History",
  "../model/formatter",
  "sap/ui/model/Filter",
  "sap/ui/model/FilterOperator",
  "sap/m/MessageToast"
], function(BaseController, JSONModel, /* ... */) { /*... */ }));

XML 命名空间

<mvc:View
  xmlns:mvc="sap.ui.core.mvc"
  xmlns="sap.m"
  xmlns:semantic="sap.m.semantic"
  xmlns:core="sap.ui.core"
  xmlns:table="sap.ui.table"
  xmlns:smartTable="sap.ui.comp.smarttable"
  xmlns:customData="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"
  controllerName="orders.controller.Worklist"
>
  <!-- ... -->
</mvc:View>
4

3 回答 3

3

技术优化

我看到你在使用sap.ui.comp.smarttable.SmartTable时没有预加载它的依赖项。

您绝对可以通过以下方式大幅减少应用程序的初始加载时间

上述几点普遍适用于所有 UI5 应用程序,不仅适用于 SmartTable。
有关其他与性能相关的指南,请参阅性能检查表

心理优化

除了技术优化外,还应考虑感知管理。

  1. 重要的是要注意感知的性能是真实的性能。毫秒数并不是真正重要的。
  2. 为了指示某事正在发生,我们可以根据下图使用busystateBusyIndi​​catorBusyDialogProgressIndicator

忙碌和进度指示器

资料来源:心理时间:宽容管理

于 2018-05-11T13:32:43.813 回答
0

虽然一分钟时间太长,但 UI5 应用程序在您第一次运行时加载较长时间是正常的,因为它会从 UI5 服务器下载 UI5 库——下载库后,它们会被缓存到您的浏览器,因此,在接下来的运行中它要快得多。

于 2018-05-11T12:41:04.047 回答
-1

组件预加载文件有助于提高您的应用程序在初始加载时的性能。您可以轻松地创建此文件,例如,从 SAP Web IDE:右键单击项目 →构建构建项目以创建/更新预加载文件。

于 2018-05-13T17:43:13.360 回答