Hallo miteinander,
folgendes Problem: Ich möchte mittels AJAX Daten von meinem Server
abrufen, die dann clientseitig verschiedene Javascript-Funktionen
aufrufen.
-> Was für Möglichkeiten gibt es, das recht einfach durchzuführen?
Die händische Variante wäre wohl, den Funktionsnamen und die Parameter
auszulesen und in einer if/elseif-Kette die entsprechende Funktion zu
rufen.
Dann habe ich gelesen, dass es die eval-Funktion gibt, die eine
Zeichenkette als JavaScript-Code ausführt, ich könnte dort also direkt
den Funktionsaufruf reinschreiben. Es wird allerdings davon abgeraten.
Dann gibts noch die "new Function"-Methode, bin mir aber nicht sicher,
ob man damit auf bestehende Variablen zugreifen kann.
Kann man sich mittels JSON auf Objektebene was basteln?
Wie würdet ihr das machen? Es geht am Schluss um vielleicht 20 bis 50
Funktionen.
Vielen Dank schonmal!
PS: Bin Anfänger in der Web-Thematik.
Ich würde mir mal das Thema "Websocket" ansehen. Das hat aber nur Sinn,
wenn du vorher schon mal in anderen Programmiersprachen mit TCP-Sockets
gearbeitet hast ...
Danke schonmal. Ich war zwar eher auf die Datenebene aus (ich nehm an
bei Websockets besteht das gleiche Problem?). Aber ich schau mir da auf
jeden Fall mal an.
Die Datensätze, die als JSON vom Server abgerufen werden, haben einfach
ein String Property wie z. B. "type". Für die Typen existiert ein
Dictionary (== JS Objekt), das die Funktionen zuordnet, z. B.:
OK, das funktioniert schonmal, Code siehe unten.
Wenn ich jetzt mehrere Funktionsaufrufe mitschicken möchte, wie müsste
das aussehen? Klar, ich könnte fkt2Name und fkt3Name definieren, dann
wäre aber die Anzahl an Funktionen ja fest.
Übertragener Text: