优化 sapui5/openui5 混合网络应用程序中的初始化

Optimizing sapui5/openui5 initialization in hybrid web apps

我们正在使用 sapui5(built 通过 phonegap build)构建一个混合网络应用程序。

整个应用包括sapui5启动时间有点慢,所以我们想优化它。

所有 sapui5 文件都与混合应用程序打包在一起,因此在初始化期间没有完成网络请求。

这是我们当前对 sapui5 的初始化:

    <script id="sap-ui-bootstrap" type="text/javascript" src="sap-ui-core.js"
data-sap-ui-preload="sync"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-libs="sap.ui.layout,sap.viz,sap.ui.commons,sap.ui.unified,sap.ui.ux3,sap.ui.table,sap.suite.ui.commons,sap.m,sap.me"></script>

我们目前使用的是 sapui5 版本 1.24.2。

我将使用 performance.timing 对象来检查任何更改的效果。

我们将从 data-sap-ui-libs 中删除未使用的库,但是否可以采取其他措施?

我不确定它是否对性能有很大帮助,但请确保您使用的是库的预加载版本,例如 sap/m/library-preload.json。这样您还可以缩小混合应用程序安装包的大小,因为您可以删除控件的所有 .js 或 -dgb.js 文件。

我遇到了类似的问题。因为你加载了很多库,你应该异步加载它们并在你的核心准备好时启动:

   <script id="sap-ui-bootstrap" type="text/javascript" src="sap-ui-core.js"
data-sap-ui-preload="async"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-libs="sap.ui.layout,sap.viz,sap.ui.commons,sap.ui.unified,sap.ui.ux3,sap.ui.table,sap.suite.ui.commons,sap.m,sap.me"></script>

<script>


    var oCore = sap.ui.getCore().attachInit(function(){
    //start application
        });
    </script>

我在这里找到了部分答案:How to load sapui5 resources in the background

我也遇到了ui混合应用程序在启动时出现性能问题。 我是运行 for android: cordova -v: 4.3.0 cordova platform version android: 3.7.1 而for ios: cordova -v: 5.1.1 cordova platform版本 android:3.8.0

我所做的是:

  • 当您将移动包 (openui5-runtime-mobile-1.30.8.zip) 与 data-sap-ui-preload="" 结合使用时.这将为您节省几个电话
  • 就像其他人已经提到的,只使用异步调用
  • 从一开始就尽量不要在控制器的初始化方法中做不需要的事情
  • 检查您的应用程序是否有耗时的操作 - 例如我有一个 sap.m.List 没有激活
  • 我试过了,但没有成功:http://scn.sap.com/community/developer-center/front-end/blog/2015/04/29/fast-responding-sapui5-core-library-loader
  • 使用启动画面 -> 只是为了 "hide" 缓慢的启动时间