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

时间:2015-04-18 11:11:44

标签: cordova phonegap-build sapui5

我们正在使用sapui5(通过phonegap构建构建)构建混合Web应用程序。

整个应用程序的启动时间有点慢,包括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-lib中删除未使用的库,但是还有其他可以采取的操作吗?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

我也正在构建一个在启动时出现性能问题的混合应用程序。 我正在运行android:cordova -v:4.3.0 cordova平台版本android:3.7.1并且适用于ios:cordova -v:5.1.1 cordova平台版本android:3.8.0

我做的是以下内容:

  • 当您将移动软件包(openui5-runtime-mobile-1.30.8.zip)与data-sap-ui-preload =&#34;&#34;结合使用时。这将为您节省几个电话
  • 就像其他人已经提到的那样,只使用异步调用
  • 尽量不要在控制台的init方法中执行从开始屏幕开始就不需要的东西
  • 检查您的应用程序是否有耗时的操作 - 例如,我有一个sap.m.List而没有激活
  • 我试过这个但是没有成功:http://scn.sap.com/community/developer-center/front-end/blog/2015/04/29/fast-responding-sapui5-core-library-loader
  • 使用启动画面 - &gt;只是为了&#34;隐藏&#34;缓慢的开始时间

答案 2 :(得分:0)

我有类似的问题。因为您加载了很多库,所以应该异步加载它们并在核心就绪时启动它们:

   <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