预加载sap.ui.unified.Calendar

时间:2018-01-16 08:23:28

标签: sapui5

我在慢速3G连接上测试我的UI5应用程序的性能。我注意到使用sap.ui.unified.Calendar时第一次加载sap.m.DateTimePicker需要相当长的时间。

official documentation中提到了这一点。建议的解决方案是预加载sap.ui.unified库。我尝试了多种方法,但无论我做什么,Calendar仍然需要很长时间才能加载。

  • 我尝试在sap.ui.unified中将data-sap-ui-libs添加到index.html
  • 我尝试过使用jQuery.sap.require("sap.ui.unified")(即 显然已经弃用了。)
  • 我尝试过使用sap.ui.require(["sap/ui/unified/Calendar"])

这些解决方案都不起作用。任何帮助将不胜感激。

更新

DateTimePicker在XML视图中声明如下:

<DateTimePicker
    id="dtClockIn"
    valueFormat="MM-dd-YYYY hh:mm a"
    displayFormat="MM-dd-YYYY hh:mm a"
    placeholder="MM-DD-YYYY hh:mm ampm"/>

控制器中没有任何奇特的事情发生。

1 个答案:

答案 0 :(得分:1)

1.50及以下

目前,库资源包(messagebundle*.properties文件)按按需同步加载,这会在使用相应控件之前产生瓶颈(例如日历)。我担心我们不能做太多。

但是,当UI准备就绪时,您可以通过手动调用getLibraryResourceBundle来至少预取捆绑文件。例如。在afterShow

onAfterShow: function() {
  sap.ui.getCore().getLibraryResourceBundle("sap.ui.unified");
  // Avoids fetching it later when the Calendar is about to be shown
},

截至1.52

With v1.52,只要将库配置为异步加载,就会异步加载此类bundle。以下是一个示例:https://output.jsbin.com/qolesuf