This commit is contained in:
2022-04-12 16:18:30 +03:00
parent 9cf705bacc
commit 4bd6c93b00
6 changed files with 46 additions and 22 deletions
+17 -13
View File
@@ -205,6 +205,13 @@ window.kit.service = window.kit.service || {};
var getModulePromise = (function () {
function getFileLoadNode(src) {
src = src.match(/^[^#?]*/)[0];
return document.querySelector('script[src^="'+src+'"]') ||
document.querySelector('link[href^="'+src+'"]') ||
document.querySelector('meta[property="kit:file-load"][name="'+src+'"]');
}
function loadScript(src, resolveCallback, rejectCallback) {
src = String(src).split('?')[0];
if(typeof resolveCallback !== 'function'){
@@ -216,11 +223,10 @@ window.kit.service = window.kit.service || {};
};
}
return new Promise(function(resolve, reject) {
var meta = document.querySelector('meta[name="'+src+'"]');
var script = document.querySelector('script[src^="'+src+'"]');
if (script || meta) {
global.config.debug && console.warn(`Скрип ${src} уже загружен`);
self.__ready(resolve, [script]);
var loadNode = getFileLoadNode(src);
if (loadNode) {
global.config.debug && console.warn(`Скрипт ${src} уже загружен`);
self.__ready(resolve, [loadNode]);
} else {
script = document.createElement('script');
script.src = '' + src + '?__pm' + (new Date()).getTime();
@@ -250,9 +256,8 @@ window.kit.service = window.kit.service || {};
list.forEach(function(item, i, arr){
syncPromise.then(function(){
var src = configModule.path + item;
var meta = document.querySelector('meta[name="'+src+'"]');
var script = document.querySelector('script[src^="'+src+'"]');
if(meta || script){
var loadNode = getFileLoadNode(src);
if(loadNode){
self.__ready(resolve, [src, true]);
} else {
script = document.createElement('script');
@@ -267,13 +272,12 @@ window.kit.service = window.kit.service || {};
}
function loadStyle(src) {
return new Promise(function(resolve, reject) {
var meta = document.querySelector('meta[name="'+src+'"]');
var link = document.querySelector('link[href^="'+src+'"]');
if(link || meta) {
global.config.debug && console.warn(`Скрип ${src} уже загружен`);
var loadNode = getFileLoadNode(src);
if(loadNode) {
global.config.debug && console.warn(`Стиль ${src} уже загружен`);
self.__ready(resolve, [src]);
} else {
link = document.createElement('link');
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = src + '?__pm' + (new Date()).getTime();