Sapui5 预加载sap.ui.unified.Calendar

Sapui5 预加载sap.ui.unified.Calendar,sapui5,Sapui5,我正在低速3G连接上测试UI5应用程序的性能。我注意到,在使用sap.m.DateTimePicker时,首次加载sap.ui.unified.Calendar需要相当长的时间 这在报告中提到。建议的解决方案是预加载sap.ui.unified库。我已经尝试了多种方法,但是无论我做什么,第一次加载日历仍然需要很长时间 我已尝试将sap.ui.unified添加到我的index.html中的datasapulibs 我尝试过使用jQuery.sap.require(“sap.ui.unified

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

这在报告中提到。建议的解决方案是预加载
sap.ui.unified
库。我已经尝试了多种方法,但是无论我做什么,第一次加载
日历仍然需要很长时间

  • 我已尝试将
    sap.ui.unified
    添加到我的
    index.html
    中的
    datasapulibs
  • 我尝试过使用
    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.50及以下 目前,库资源包(
messagebundle*.properties
文件)是按需加载的和同步加载的,这在使用相应控件(如日历)之前造成了瓶颈。恐怕我们对此无能为力

但是,您至少可以在UI就绪时通过手动调用预取捆绑包文件。例如:

onAfterShow:function()的{ getCore().getLibraryResourceBundle(“sap.ui.unified”); //避免在稍后将要显示日历时获取它 },

截至1时52分
,只要库被配置为异步加载,这些捆绑包就可以预先异步加载。下面是一个示例:

调用
getLibraryResourceBundle
成功预取
messagebundle\u en\u US.properties
文件,谢谢!打开日历时仍然需要获取
en.json
文件,但至少这几乎是时间的一半。但据我所知,
onAfterShow
只能在
NavContainer
的子级上调用。由于我的
DateTimePicker
只是
视图的一个孩子,我使用了
onAfterRendering
@gianpalobuffo,不幸的是,我无法重现打开日历时获取
en.json
的行为。如果你分享一些代码或我如何重现行为的信息,我很乐意查看一下,看看我们是否也可以预取文件。@GianPaoloBuffo关于
onaafterrendering
:我通常不建议在那里做任何事情,因为调用钩子的时间和频率是不可预测的。如果您已通过
路由
实现导航,则
导航容器
子项(即视图)上的
onAfterShow
onBeforeShow
是首选挂钩。以下是此类实现的一个示例:@GianPaoloBuffo关于仍同步加载语言环境数据(
en.json
)的相关问题: