如何在后台加载sapui5资源

时间:2014-09-01 18:48:26

标签: sapui5

在我们的应用程序中,我们加载了许多SAPUI5库。 index.html具有以下代码来加载SAPUI5资源

<script src="resources/sap-ui-cachebuster/sap-ui-core.js"
        id="sap-ui-bootstrap"
        data-sap-ui-libs="sap.ui.commons,sap.ui.table,sap.ui.ux3,sap.m"
        data-sap-ui-theme="sap_bluecrystal" 
        data-sap-ui-appCacheBuster="./">

</script>

在我们的web.xml中,我们提到了https://sapui5.hana.ondemand.com作为com.sap.ui5.resource.REMOTE_LOCATION来加载资源。

我们观察到的是,应用程序第一次加载需要很长时间。并且网络调用给出了加载UI5资源需要最多时间的想法。 有没有办法可以更快地加载UI5资源?还是在后台呢? 建议或代码示例在这里真的很有帮助。谢谢。

2 个答案:

答案 0 :(得分:7)

您可以加载UI5资源asynchronously。使用data-sap-ui-preload="async"

<script src="resources/sap-ui-cachebuster/sap-ui-core.js" id="sap-ui-bootstrap"
         data-sap-ui-libs="sap.ui.commons,sap.ui.table,sap.ui.ux3,sap.m"
         data-sap-ui-theme="sap_bluecrystal" 
         data-sap-ui-preload="async"
         data-sap-ui-appCacheBuster="./">

但您必须使用attachInitEvent方法

延迟对SAPUI5 API的访问
var oCore = sap.ui.getCore();
oCore.attachInit(function() {
    //do the needful
});

答案 1 :(得分:1)

您尝试一次加载太多:sap.ui.commons,sap.ui.table,sap.ui.ux3,sap.m

尝试仅将基本部分和其余部分加载为异步方法,以便用户在等待太久之前至少可以看到一些操作:

同步

 <script src="resources/sap-ui-cachebuster/sap-ui-core.js" id="sap-ui-bootstrap"
     data-sap-ui-libs="sap.ui.commons,sap.m"
     data-sap-ui-theme="sap_bluecrystal" 
     data-sap-ui-appCacheBuster="./">

<强> ASYNC

 <script src="resources/sap-ui-cachebuster/sap-ui-core.js" id="sap-ui-bootstrap"
     data-sap-ui-libs="sap.ui.table,sap.ui.ux3"
     data-sap-ui-theme="sap_bluecrystal" 
     data-sap-ui-preload="async"
     data-sap-ui-appCacheBuster="./">