У меня есть скрипт, который строит список на основе структуры каталогов. Он считывает из ресурсов WebDAV для обнаружения блокировок для каждого файла и добавляет узлы и классы для отображения этой структуры в виде серии вложенных списков с классом в элементе списка, если он заблокирован.
Это прекрасно работает, теперь я хочу назначить функциональность созданным узлам списка.
Я мог бы добавить эту функцию, так как элемент списка создается в рамках асинхронного обратного вызова, но мне было интересно, существуют ли какие-либо общие подходы, которые могут ожидать серию потенциально рекурсивных асинхронных действий (каталоги уровня X) с Y ресурсами в них), чтобы закончить, и в этот момент безопасно выполнить действия над всей группой созданных узлов.
Причина, по которой я спрашиваю, вместо того, чтобы идти вперед и добавлять функциональность во время каждого асинхронного обратного вызова для обнаруженного ресурса, заключается в том, что я использую YUI3, и они имеют все виды удобств, таких как:
// Add functionality to items meeting the CSS selector criteria
Y.all('#select_projects_list li.file:not(#select_projects_list li.locked)').on('click', function(e){
// do stuff with 'this'
});
Где может показаться, что если бы я делал вышеупомянутое, это могло бы быть более эффективным, чем повторение аналогичной функции в каждом асинхронном обратном вызове для того, что могло бы в итоге привести к сотням ресурсов.
Псевдокодовые решения, идеи и подходы приветствуются.
веселит.