2015-04-18 2 views
4

Мы создаем гибридное веб-приложение, используя sapui5 (построенный с помощью сборки телефонной заставки).Оптимизация инициализации sapui5/openui5 в гибридных веб-приложениях

Время запуска немного медленное для приложения в целом, включая sapui5, поэтому мы хотели бы его оптимизировать.

Все файлы sapui5 упакованы в гибридное приложение, поэтому во время инициализации нет сетевого запроса.

Это наш текущий initializiation из sapui5:

<script id="sap-ui-bootstrap" type="text/javascript" src="sap-ui-core.js" 
data-sap-ui-preload="sync" 
data-sap-ui-theme="sap_bluecrystal" 
data-sap-ui-libs="sap.ui.layout,sap.viz,sap.ui.commons,sap.ui.unified,sap.ui.ux3,sap.ui.table,sap.suite.ui.commons,sap.m,sap.me"></script> 

Мы в настоящее время используют sapui5 версии 1.24.2.

Я буду использовать объект performance.timing, чтобы проверить влияние любых изменений.

Мы удалим неиспользуемые библиотеки из data-sap-ui-libs, но есть ли другие действия, которые можно предпринять?

+0

сокращение данных-sap-ui-libs оказало огромное влияние. От 11.3 до 6.5 секунд (с большим количеством других элементов, загружаемых на страницу). Измерение performance.timing.domComplete - performance.timing.requestStart с консоли Chrome – dparnas

ответ

1

Я также строить гибридные приложения с проблемы с производительностью при запуске. Я бегу за андроид: cordova -v: 4.3.0 версия платформы для платформы corora android: 3.7.1 И для ios: cordova -v: 5.1.1 версия платформы кордоны Android: 3.8.0

Что я сделал, следующий:

  • , когда вы используете мобильный пакет (openui5-runtime-mobile-1.30.8.zip) в сочетании с данными живицы-UI-преднагрузкой = "". Это позволит вам сэкономить пару звонков
  • Как и уже упоминавшихся от других, только использовать асинхронные вызовы
  • Старайтесь не делать вещи в методах инициализации контроллера, что вам не нужно с самого начала из вашего стартового экрана
  • проверить заявку на трудоемкие действия - например, у меня был sap.m.List без накапливающегося активированного
  • Я попытался это, но не был успешным с ним: http://scn.sap.com/community/developer-center/front-end/blog/2015/04/29/fast-responding-sapui5-core-library-loader
  • Использование заставки -> просто " скрыть "медленное время запуска
2

Я не уверен, насколько это помогает в производительности, но убедитесь, что вы используете предварительно загруженные версии библиотек, такие как sap/m/library-preload.json. Таким образом, вы также можете уменьшить размер установочного пакета гибридного приложения, поскольку вы можете удалить все файлы .js или -dgb.js элементов управления.

+0

Спасибо, как я могу проверить, что я использую предварительные загрузки? Это только атрибут data-sap-ui-preload, который определяет его? – dparnas

+0

Да, трассировка сети. – kjokinen

+0

Извините, отредактировал начальный комментарий :) Но подтвердит с трассировкой сети – dparnas

0

У меня была аналогичная проблема. Поскольку вы загружаете много библиотек, вы должны загрузить их в асинхронном режиме и начать, когда ваш основной готов:

<script id="sap-ui-bootstrap" type="text/javascript" src="sap-ui-core.js" 
data-sap-ui-preload="async" 
data-sap-ui-theme="sap_bluecrystal" 
data-sap-ui-libs="sap.ui.layout,sap.viz,sap.ui.commons,sap.ui.unified,sap.ui.ux3,sap.ui.table,sap.suite.ui.commons,sap.m,sap.me"></script> 

<script> 


    var oCore = sap.ui.getCore().attachInit(function(){ 
    //start application 
     }); 
    </script> 

Я нашел ответ частично здесь: How to load sapui5 resources in the background

+0

Спасибо за предложение.Пока файлы уже находятся в приложении и доступны через файл: // path, я предполагаю, что мне мало что нужно. [Документация SAP по варианту предварительной загрузки] (http://help.sap.com/saphelp_uiaddon10/helpdata/en/91/f1e3626f4d1014b6dd926db0e91070/content.htm) также указывают, что вам необходимо явно обрабатывать инициализацию (что приводит к более сложной работе существующего кода) – dparnas

Смежные вопросы