Прагматично определите EXT JS 6 - требуется или использует подфайл

EXTJS 6, требует или использует - определить программно

На работе мы используем EXT JS 6, мне было поручено "ускорить его". Я уже сделал несколько вещей и достиг увеличения скорости как минимум на 30%. Однако при загрузке страницы / модуля / раздела (как бы вы это ни называли) каждый отдельный компонент под первым загружается асинхронно. Это вызывает измеримую задержку около 20 секунд при загрузке страницы.

Я считаю, что это потому, что когда мы перешли с EXT JS 4, мы сохранили все в наших определениях классов как обязательные.

requires: [
    'app.view.setup.thing.TabController',
    'app.view.setup.thing.Panel',
    'app.store.setup.combo.thingGroupIcons'
],

Я просмотрел много документации и пришел к выводу, что мы должны использовать "использует" для определения разделов программы, которые могут загружаться отдельно для "на экране первый".

Так, например, вышесказанное станет что-то вроде:

requires: [
    'app.view.setup.thing.Panel',
],
uses: [
    'app.view.setup.thing.TabController',
    'app.store.setup.combo.thingGroupIcons'
],

Программа, вероятно, имеет хорошие 500 страниц / разделов. Вероятно, имеет 3000 файлов. Так что мой вопрос (действительно, в два раза).

Вопрос 1: Как я могу прагматично определить, может ли что-то из моих "требований" быть загружено с помощью "использует"

а также

Вопрос 2: я на правильном пути вообще?

Вокруг EXT JS есть очень враждебное сообщество, поэтому я задаю этот вопрос в стеке, где я надеюсь, что люди будут более полезными. Сегодня я потратил семь часов на чтение, и ниже приведены некоторые ссылки, которые, на мой взгляд, действительно полезны.

https://www.sencha.com/forum/archive/index.php/t-133191.html?s=8b90c637dd96fed53597cd029544d955 http://docs.sencha.com/extjs/6.0.0/classic/Ext.Class.html

1 ответ

Решение

Чтобы определить, какие из них вы можете загрузить через uses, вы можете только переместить все из "обязательных" разделов в раздел "использования" и проверить, что не работает.

Но с uses, вы можете только улучшить время загрузки не скомпилированной версии, а не скомпилированной версии cmd, где все зависимости находятся в одном файле javascript и должны быть единственной версией, с которой сталкивается клиент.

Конечно, вы всегда можете сделать то же самое, что и мой начальник, и попросить нескольких высокоплачиваемых консультантов ™ (от Sencha или ближайшей к вам сети, одобренной Sencha) рассмотреть вашу заявку. Их первым результатом было именно то, что я уже сказал ему: нет никакой возможности значительно улучшить скорость загрузки нашей скомпилированной Cmd-версии. Они сказали нам, что у нас остался только один вариант - я должен добавить анимированный экран-заставку, который сократит время загрузки в два раза. Конечно, это не так, если вы используете секундомер, но у пользователя нет секундомера, когда он запускает приложение...

Другие вопросы по тегам