Загрузчик модулей ES6 с «поддержкой индикатора выполнения»

У меня есть собственная модульная система для внутреннего веб-приложения - основная концепция заключается в том, что приложение является динамическим, т.е. модули могут быть добавлены/удалены во время выполнения. По этой причине я не могу использовать связку, и отдельные модули загружаются индивидуально. Запрос одного модуля может вызвать загрузку 100 других в качестве зависимостей - текущая реализация с собственным загрузчиком делает это асинхронно и отображает хороший индикатор выполнения, чтобы пользователи с медленным соединением имели представление о том, как долго им нужно ждать.

В настоящее время я оцениваю альтернативу переключению на синтаксис ES6 для модулей, а также переключению на некоторые из ES6-совместимых загрузчиков модулей, существующих на github.

Итак, вопрос в том, есть ли ES6-совместимые загрузчики модулей с API, которые предоставляют события, говорящие что-то вроде:

  • Я начал загружать ресурсы
  • Я загрузил N из M ресурсов
  • Я сделал с загрузкой всех запрошенных ресурсов

Это должно работать как минимум в следующих браузерах: Chrome (последний), Firefox (последний), IE11.


person Xtra Coder    schedule 24.02.2016    source источник
comment
Разве не во всех браузерах по умолчанию отображается ход загрузки ресурсов в адресной строке?   -  person Bergi    schedule 25.02.2016
comment
Я бы сказал, что только некоторые из браузеров показывают индикатор выполнения для ресурсов (я помню, что он был в Opera, последний раз использовал его 2-3 года назад), ни один из тех, которые у меня есть в требованиях к проекту, не имеет его - Chrome (последний), Firefox (последний) , IE11   -  person Xtra Coder    schedule 25.02.2016


Ответы (1)


Я бы рекомендовал транспилировать модули ES6 в AMD и использовать загрузчик модулей AMD, который поддерживает необходимые вам функции. Например, в реализации Dojo есть отслеживание событий.

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

person Bergi    schedule 25.02.2016