K
koli.bri
Hallo.
ich stehe vor dem Problem, dass ich für ein Projekt eine Menge verschiedener JavaScript-Funktionen brauche (ich rechne mit über 100), die auch alle nacheinander aufgerufen werden.
(Info: Es handelt sich um einen JavaScript-"Interpreter" für eine "Scriptsprache" in Eigenentwicklung für ein Online-Spiel-System. Es werden "Codeblöcke" ala
Interpretiert, und für jeden Befehl wird eine JavaScript Funktion benötigt, die den Befehl interpretiert. in der können auch durchaus httpRequests stehen (falls das wichtig ist)
Da man so gut wie jede Spieleinstellung mit diesem EventCode verändern können soll, braucht man auch eine Menge interpretierende Funktionen.
Jetzt stellt sich mir aber auch die Aufgabe, das ganze so bandbreitenschonend wie möglich zu gestalten.
Daher fällt es Flach, alle funktionen in eine Datei zu packen und die immer mit zu laden.
Da Safari sich dagegen sträubt, JavaScript-Dateien dynamisch nachzuladen, habe ich folgende Idee:
Mitttels eines HttpRequests lade ich den Quellcode für die entsprechende Funktion aus einer Datenbank aus (ich hab also vorher ein riesiges "switch/case") und macht die funktionen mittels eines "eval(geladener_Quellcode)" verfügbar.
Wäre das eine gängige Vorgehensweise?
wie sieht das mit der Geschwindigkeit der Scripts aus, da ja dann für jede Zeile eine Datenbankabfrage gestartet wird.
Wie würdest ihr das machen?
mfg
Lukas
PS.: Bei der Lösung würde ich freillich oft genutzte Funktionen NICHT auslagern, sondern direkt in der JavaScript-Datei lassen.
PPS.: Ja, ich bin mir bewusst, dass dann auch eine Überprüfung rein muss, ob die Funktion schon mal geladen worden ist
ich stehe vor dem Problem, dass ich für ein Projekt eine Menge verschiedener JavaScript-Funktionen brauche (ich rechne mit über 100), die auch alle nacheinander aufgerufen werden.
(Info: Es handelt sich um einen JavaScript-"Interpreter" für eine "Scriptsprache" in Eigenentwicklung für ein Online-Spiel-System. Es werden "Codeblöcke" ala
Code:
SAY Hallo Welt
IF Schalter1 = 1
MOVE Char1 1 UP
ENDIF
SAVE
[...]
Da man so gut wie jede Spieleinstellung mit diesem EventCode verändern können soll, braucht man auch eine Menge interpretierende Funktionen.
Jetzt stellt sich mir aber auch die Aufgabe, das ganze so bandbreitenschonend wie möglich zu gestalten.
Daher fällt es Flach, alle funktionen in eine Datei zu packen und die immer mit zu laden.
Da Safari sich dagegen sträubt, JavaScript-Dateien dynamisch nachzuladen, habe ich folgende Idee:
Mitttels eines HttpRequests lade ich den Quellcode für die entsprechende Funktion aus einer Datenbank aus (ich hab also vorher ein riesiges "switch/case") und macht die funktionen mittels eines "eval(geladener_Quellcode)" verfügbar.
Wäre das eine gängige Vorgehensweise?
wie sieht das mit der Geschwindigkeit der Scripts aus, da ja dann für jede Zeile eine Datenbankabfrage gestartet wird.
Wie würdest ihr das machen?
mfg
Lukas
PS.: Bei der Lösung würde ich freillich oft genutzte Funktionen NICHT auslagern, sondern direkt in der JavaScript-Datei lassen.
PPS.: Ja, ich bin mir bewusst, dass dann auch eine Überprüfung rein muss, ob die Funktion schon mal geladen worden ist