Создал обертку для загрузки файлов, которая в зависимости от конфигурации может загружать файлы из очереди, при ошибке повторять попытку определенное количество раз и делать другие полезные вещи.
Мне нужно обрабатывать процесс загрузки каждого файла, что бы например создать полосу прогресса, обновлять прогресс при каждом событии загрузки и по окончании показать что файл загружен или ошибку.
Сейчас я делаю так: при загрузке нового файла создаю объект предоставленного пользователем класса и при определенных событиях вызываю методы с определенными именами. Например fileHandler.loadStart(url)
, fileHandler.progress(xhrProgressEvent)
. Так я могу реализовать всё что мне нужно. Например при создании объекта создать нужные элементы и при вызове методов взаимодействовать с нужными элементами через замыкания.
Но мне такой подход кажется не стандартным, не привычным. Хотя бы потому, что мне нужно поставлять вместе с библиотекой обертки, ещё и интерфейс класса менеджера событий. И для пользователей такое взаимодействие может показаться запутанным.
Есть ли какие-то аналоги? Возможно какой-то встроенный менеджер событий или что-то вроде этого. Как бы вы реализовали такое поведение?
Обращаю внимание на то, что передавать какой-нибудь EventTarget
и вызывать события через него не получится, потому что в этом случае пользователь не может один раз создать не глобальную переменную и обращаться к ней при вызове событий, а значит прийдется каждый раз вычислять элемент в котором нужно обновить информацию, а это не производительно и может быть даже невозможно (например, если элемент вычисляется по url, который может быть не уникальным, из-за загрузки нескольких файлов по одной и той же ссылке, что технически возможно)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть функция, выполнение ее занимает примерно 5 секундЭта функция получает ссылку на страницу, далее выполняются встроенные методы phantom
Есть 2 функции конструкторов, прототип 1-ой функции-конструктора наследуется через Objectcreate, но в качестве прототипа ошибочно указан не объект(прототип),...
Как я могу записать аналог class MyClass extends EventTarget{}, без использования синтаксиса "class"? В спецификации сказано что это только синтаксический сахар,...
Пожалуйста, подскажите, как можно при: добавлении, удаление классов (при toggleClass например) сохранять результат после перезагрузки страницыЯ...