Повышение производительности и уменьшение скорости загрузки страниц для конечного пользователя - вот что не дает мне покоя последние 2 месяца. Добравшись до оптимизации загрузки JS на страницу - с удивлением принял тот факт, что CJSCore::Init не имеет возможности подгрузить скрипт с флагом async - что пусть и не критично, но при большом количестве логики на клиенте было бы приятным дополнением. При изучении всех страниц текущего проекта обнаружилось куча разноверсионных экземпляров jQuery, jQuery-ui, Bootstrap и прочих популярных JS-библиотек. В результате было решено сделать модуль-обертку для загрузки JS средствами API фреймворка, управления версионностью всей этой лабуды, исключения дублирования и, как приятное дополнение - возможностью задавать флажок async. Если основной функционал модуля другим разработчикам может и не понадобиться, то вот увидеть флажок для задания async в CJSCore::Init - было бы приятно из коробки. Тем более, что в ядро добавить нужно всего 1 условие и 1 строку (я проверил ).
Жуков Евгений, что значит невозможен async? А если у библиотеки нет зависимостей? Или даже если есть, то что мешает скачать "родительскую" требуемую библиотеку синхронно, а зависящую асинхронно? А если у меня не библиотека, а файл с набором обработчиков которые работают только после document.ready - почему его нельзя скачать асинхронно?
Если быть более точным - практически невозможен. Максимум, чего можно достичь - асинхронной загрузки Вашей собственной библиотеки, которая: 1. не зависит ни от одной дефолтной библиотеки продукта 2. не требует других библиотек (jQuery, etc) Все дефолтные библиотеки продукта имеют зависимости и должны загружаться в жестко заданном порядке.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».