loadWindowVariables.js optimiert

This commit is contained in:
ISA
2024-10-28 15:30:25 +01:00
parent 60fecd9045
commit e9e9c188a3
2 changed files with 43 additions and 16 deletions

View File

@@ -60,37 +60,56 @@ export async function loadWindowVariables() {
const scripts = ["de.js", "kueData.js", "Start.js", "System.js"];
// Erster Aufruf zum Laden aller Skripte
Promise.all(scripts.map(loadScript))
// Lade die Skripte nacheinander
scripts
.reduce((promise, script) => {
return promise.then(() => loadScript(script));
}, Promise.resolve())
.then(() => {
// Einmaliger direkter Check, ob alle Variablen vorhanden sind
const missingVarsInitial = requiredVars.filter(
(variable) => window[variable] === undefined
);
const checkVariables = () => {
const missingVars = requiredVars.filter(
(variable) => window[variable] === undefined
);
return missingVars;
};
if (missingVarsInitial.length === 0) {
// Alle Variablen sind geladen, keine weiteren Checks notwendig
// Einmalige Überprüfung nach dem Laden aller Skripte
const initialMissingVars = checkVariables();
if (initialMissingVars.length === 0) {
console.log("Alle Systemvariablen beim ersten Aufruf geladen.");
resolve();
} else {
console.log(
"Noch fehlende Variablen beim ersten Aufruf:",
missingVarsInitial
initialMissingVars
);
// Falls Variablen fehlen, starte das Intervall
// Falls Variablen fehlen, starte ein Intervall zur wiederholten Überprüfung
const maxChecks = 10;
let checkCount = 0;
const checkInterval = setInterval(() => {
const missingVars = requiredVars.filter(
(variable) => window[variable] === undefined
);
const remainingMissingVars = checkVariables();
if (missingVars.length === 0) {
if (remainingMissingVars.length === 0) {
clearInterval(checkInterval);
console.log("Alle fehlenden Systemvariablen sind jetzt geladen.");
resolve();
} else if (checkCount >= maxChecks) {
clearInterval(checkInterval);
console.warn(
"Einige Variablen wurden nicht geladen:",
remainingMissingVars
);
reject(
new Error(
"Einige Variablen fehlen nach wiederholten Versuchen."
)
);
} else {
console.log("Noch fehlende Variablen:", missingVars);
console.log("Noch fehlende Variablen:", remainingMissingVars);
}
checkCount++;
}, 10000); // Überprüfung alle 10 Sekunden
}
})