dedlfix: Welches Event befragen?

Beitrag lesen

Tach!

Hier jedoch liegt ein kleines Problem, denn es kann passieren, dass ein Request rausgeht, der noch nicht alle neuen Nachrichten(nummern) kennt, weil das Rendern ins DOM noch nicht fertig ist. CODE zu:

Ich würde nicht immer wieder das DOM rauf und runter abklappern, um zu ermitteln, welche Daten ich habe. Stattdessen nähme ich eine eigene Datenhaltung, in die die Chatnachrichten eingefügt werden. Das Rendern überließe ich AngularJS. (Das kann auch den Ajax-Kram erledigen.)

Meine Datenhaltung sähe so aus, dass die Nachrichten mit einem Timestamp versehen, und diesen als Eigenschaftsname verwendend, in ein Objekt eingefügt werden. Damit ergibt sich sowas wie ein assoziatives Array. Die Keys kann man beim Ausgeben sortieren, um die Nachrichten in der richtigen Reihenfolge anzuzeigen. Der Timestamp muss aber höher als bis Sekunden aufgelöst werden, denn die Wahrscheinlichkeit, dass zur selben Sekunde mehr als eine Nachricht eingehen, ist nicht besonders nahe bei Null. Millisekunden reichen vermutlich, ansonsten muss da eben ein anderer eindeutiger Wert angehängt werden. Mit dieser Datenhaltung wäre es egal, wenn Nachrichten mehrfach kämen, weil sie dann in dem Objekt einfach überschrieben würden.

Das Rendern dann ist ein Einzeiler mit AngularJS, plus das HTML für eine Chatnachricht.

dedlfix.