#javascript #jquery
Вопрос:
если у меня нет контроля над порядком файлов JavaScript, возможно ли как-то задержать выполнение моего сценария, но позволить в это время выполняться другим сценариям. Например, мой сценарий A загружается до сценариев B и C. Но сценарии B и C загружают некоторые данные в DOM, с которыми мне нужно работать. Могу ли я каким-то образом отложить свой сценарий, чтобы скрипт B amp; C мог запустить и загрузить данные? Могу ли я, например, установить задержку на 5 секунд для выполнения моего сценария, позволить другим сценариям выполняться в течение этих 5 секунд, а затем выполнить мой сценарий? Или это единственное решение, чтобы добавить мой сценарий в качестве последнего?
Спасибо
Комментарии:
1. Загрузите сценарий D,который управляет порядком загрузки и выполнения A, B и C
2. Вы могли
setInterval()
бы подождать какой-то произвольный период перед выполнением кода, но что плохого в загрузке ваших сценариев в соответствующем порядке?3. Вы можете добавить атрибуты
async
илиdefer
в первый сценарий.4. Если B и C загружают данные асинхронно, вам следует пересмотреть весь свой подход. Задержка выполнения скрипта на фиксированное количество секунд неизбежно либо разозлит пользователя, либо приведет к плачевному исходу. Правильное решение-использовать обещания или асинхронное ожидание (или обратные вызовы старой школы) для 1. загрузки всех данных 2. обновления DOM 3. запуска кода из сценария A
5. @TangentiallyPerpendicular хорошо подходит для университетского проекта, я хотел бы знать, возможно ли это. Просто попробуй что-нибудь придумать. Но я не мог этого понять.