Поскольку встроенный в Bootstrap javascript не напрямую необходим, так как он действительно необходим только тогда, когда пользователь начинает взаимодействовать со страницей, я полагаю, что могу его лениво загрузить.(Да, это всего лишь несколько КБ, но, если возможно, почему бы и нет?)
Незначительная проблема заключается в том, что скрипт начальной загрузки запускает свою функцию инициализации initCallback () при событии DOMContentLoaded.Я полагаю, что эта функция будет искать теги данных в HTML и связывать соответствующие события / триггеры.Так как он загружается лениво, DOMContentLoaded запускается до загрузки bootstrap.js, и поэтому пропускает это событие и не инициализируется.
Я просто любитель в Javascript;и я не могу понять, как вручную вызвать эту функцию после того, как fetch () (фактически используя функцию, которую я нашел в сети с именем fetchInject ()) завершил загрузку скрипта.
Может быть, ленивая загрузка начальной загрузкине очень хорошая идея;но я пойму это в конечном счете;если я заставлю это работать по крайней мере.
/* Native Javascript for Bootstrap 4 | Initialize Data API
--------------------------------------------------------*/
var initializeDataAPI = function( constructor, collection ){
for (var i=0, l=collection[length]; i<l; i++) {
new constructor(collection[i]);
}
},
initCallback = BSN.initCallback = function(lookUp){
lookUp = lookUp || DOC;
for (var i=0, l=supports[length]; i<l; i++) {
initializeDataAPI( supports[i][1], lookUp[querySelectorAll] (supports[i][2]) );
}
};
// bulk initialize all components
DOC[body] ? initCallback() : on( DOC, 'DOMContentLoaded', function(){ initCallback(); } );
initCallback () для выполнения, так что начальная загрузка найдет все HTML-хуки встроенных данных (как выпадающие списки и прочее)