Предварительная загрузка sap.ui.unified.Calendar
Я тестирую производительность своего приложения UI5 на медленном соединении 3G. Я заметил, что требуется довольно много времени, чтобы загрузить sap.ui.unified.Calendar
впервые при использовании sap.m.DateTimePicker
,
Это упоминается в официальной документации. Предлагаемое решение заключается в предварительной загрузке 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 ответ
В настоящее время комплекты библиотечных ресурсов (messagebundle*.properties
файлы) загружаются по требованию и синхронно, что создает узкое место перед использованием соответствующего элемента управления (например, Календарь). Боюсь, мы ничего не можем с этим поделать.
Однако вы можете, по крайней мере, предварительно извлечь файл пакета, вызвав 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, такие пакеты загружаются заранее асинхронно, если у конфигурации начальной загрузки есть атрибут preload
со значением "async"
: https://output.jsbin.com/qolesuf