Visualisierung im Browser ohne Flash

kuhlmaehn

Erfahrenes Mitglied
Hi,
ich habe einen simplen Verkehrssimulator programmiert (C#) und würde die Daten die dieser ausgibt gerne auf einer Website darstellen. Nun aber nicht wie ein Film oder so sondern in Echtzeit. Und auch nicht mit Flash oder Java-Applet, sondern am liebsten einfach mit HTML und Javascript.
Nun dachte ich ich setze einen Server auf, der die Daten im Sekundentakt in eine Datei schreibt. Per Javascript kann diese Datei, auch im Sekundentakt, dann ausgelesen werden und die Objekte bekommen so ihre Position auf dem Bildschirm.
Jetzt glaube ich aber, dass das vom Traffik her eine ganz unschöne Lösung ist. Jede Sekunde eine Datei laden dürfte (vorallem wenn es mehrere Clienten sind) den Server ganzschön fordern...
Ich hatte auch überlegt, zunächst Start und Ziel eines Objekts in die Datei zu schreiben und die Simulation dem Browser zu überlassen. Nur bei Änderungen dieser Route werden die Daten erneut in die Datei geschrieben. Die Datei wäre dadurch warscheinlich kleiner aber würde immer noch jede Sekunde geladen werden.
Oder kann ich vielleicht direkt per Ajax mit dem Server komunizieren? Das dürfte doch aber ähnlichen Traffik fabrizieren?
Wie würdet ihr das machen?
Danke!
 
Push, don't pull!

Also nicht ständig mit JavaScript die Daten abfragen (pull), sondern der Server muss dem JavaScript "bescheid" sagen (push).
Das ließe sich z.B. mittels long-polling erreichen.
Ein weiteres Stichwort wäre "comet".

Was es da an Frameworks bzw. Implementierungen für .net gibt, weiß ich leider nicht.
 
Mh aber das ist doch eher für den Fall das selten etwas vom Server benötigt wird? Ich brauch ja sehr häufig etwas vom Server aber und will irgendwie dafür sorgen, dass der Traffik nicht aus dem Ruder läuft...
Ich denke mittlerweile auch daran die Daten zu komprimieren und sie dann Klientseitig zu entschlüsseln. Keine Ahnung ob das funktioniert ;)
 
Mh aber das ist doch eher für den Fall das selten etwas vom Server benötigt wird?

Aber anstatt jede Sekunde nach zu fragen, ob sich etwas geändert hat, ist es doch sinnvoller, erst eine Antwort zu bekommen, sobald sich etwas ändert.

Ich denke mittlerweile auch daran die Daten zu komprimieren und sie dann Klientseitig zu entschlüsseln. Keine Ahnung ob das funktioniert ;)

Schalte gzip ein, dann musst du dich um garnichts selbst kümmern.
 
Aber anstatt jede Sekunde nach zu fragen, ob sich etwas geändert hat, ist es doch sinnvoller, erst eine Antwort zu bekommen, sobald sich etwas ändert.
Stimmt du hast Recht. Änderungen an der ursprünglichen Route kommen ja auch seltener vor und so kommen sie dann auch sofort zum Klienten und nicht erst nach 1 Sekunde :)
Schalte gzip ein, dann musst du dich um garnichts selbst kümmern.
Ah sehr gut, das klingt praktisch.
Danke! :)
 

Neue Beiträge

Zurück