Как быстрее загрузить sap.ui.comp.smarttable.SmartTable?
В SAPUI5 при добавлении sap.m.DatePicker
в ваше приложение в первый раз требуется несколько секунд, чтобы загрузить необходимые файлы и открыть средство выбора даты. В API они объяснили:
Примечание: sap.ui.unified.Calendar используется внутри, только если открыт DatePicker (не используется для начального рендеринга). Если библиотека sap.ui.unified не загружается до открытия DatePicker, она будет загружена при открытии. Это может привести к ожиданию, когда DatePicker открывается в первый раз. Чтобы предотвратить это, приложения, использующие DatePicker, должны также загрузить библиотеку sap.ui.unified.
Так что это решение, которое они предлагают для ускорения загрузки DatePicker.
Когда я использую sap.ui.comp.smarttable.SmartTable
Впервые пользователь может увидеть приложение, по крайней мере, от 10 до 15 секунд.
На самом деле он загружает огромное количество отдельных файлов JavaScript. Вот небольшая часть загруженных файлов.
Теперь вопрос в том, можно ли как-то ускорить загрузку?
Я попробовал следующий код в dependencies
манифест, но не помог.
"sap.ui.comp": {
"minVersion": "1.52.1"
}
1 ответ
SmartTable - это огромный элемент управления, имеющий зависимости от следующих библиотек:
- sap.ui.core
- sap.m
- sap.ui.comp
- sap.ui.table, который, опять же, зависит от..
- sap.ui.unified
Это можно увидеть в исходном коде модуля:
sap.ui.comp.smarttable.SmartTable
sap.ui.define([ 'jquery.sap.global', 'sap/m/VBoxRenderer', 'sap/m/Column', // ... 'sap/ui/comp/library', 'sap/ui/comp/providers/TableProvider', 'sap/ui/comp/smartfilterbar/FilterProvider', 'sap/ui/comp/smartvariants/SmartVariantManagement', // ... 'sap/ui/table/AnalyticalColumn', 'sap/ui/table/AnalyticalTable', 'sap/ui/table/Column', 'sap/ui/table/Table', 'sap/ui/table/TreeTable', // ... ], function(/*...*/) {/*...*/});
Попробуйте предварительно загрузить эти библиотеки асинхронно, например,
С этими настройками конфигурации начальной загрузки:
data-sap-ui-libs="sap.ui.core, sap.m, sap.ui.comp, sap.ui.table, sap.ui.unified" data-sap-ui-preload="async"
Или в дескрипторе приложения в случае, если приложение должно работать на FLP (без index.html):
"sap.ui5": { "dependencies": { "libs": { "sap.ui.core": {}, "sap.m": {}, "sap.ui.comp": {}, "sap.ui.table": {}, "sap.ui.unified": {} }, ... }, ... },
Это должно загружать таблицу быстрее, поскольку ее зависимости не нужно загружать по требованию и больше синхронно, что позволяет избежать зависания потока пользовательского интерфейса браузера.
Заметки
Начиная с версии 1.52,
preload="async"
также включает в себя предварительную загрузкуmessagebundle*.properties
файлы, которых не было до тех пор.Другие рекомендации, касающиеся производительности, можно найти в разделе документации " Производительность: ускорить работу приложения".