Sven Rautenberg: Wieviele Daten passen in ein Array ?

Beitrag lesen

Moin!

Ich will die nicht am Stück verarbeiten, es werden immer nur 4 Werte von einer Funktion verarbeitet.
Ich muß aber alle Werte vorhalten, um nicht jedesmal bei einem Funktionsaufruf die entsprechende Werte aus der Datenbank holen (nachladen) zu müssen.

Es dürfte aber extrem unwirtschaftlich sein, den zur Erzeugung des Arrays notwendigen Javascript-Code immer nachzuladen. Wie schon berechnet wurde, sind deine Daten bereits im Megabytebereich - und das betrifft nur die reinen Daten, dazu kommen dann mindestens noch ein paar Strukturinformationen (ich schätze mindestens nochmal die gleiche Menge), und um ein derartiges Array anzulegen, wird ja Javascript-Sourcecode gebraucht, in dem die Zahlenwerte nicht in 4-Byte-Floats, sondern in Stringnotierung vorkommen müssen.

Grobe Schätzung: Dein JAvascript-Code für die Arrayerzeugung kann durchaus 5 MB groß werden.

Und sowas willst du nicht ohne weiteres einfach jedesmal neu laden (was du vermutlich mußt, wenn sich deine Datenbank zwischendurch auch mal ändern kann). Und du willst das eigentlich auch nicht ausführen, denn 5 MB Javascript brauchen ja doch eine gewisse Zeit zum Precompiling und zur Ausführung.

Geladen wird zunächst ein geeigneter begrenzter Wertebereich, der im Array gespeichert wird.

"Bewegt man sich" auf die Grenzen dieses Wertebereichs zu, werden entsprechend Werte eines wiederum begrenzten Bereichs nachgeladen und dem Array hinzugefügt.

Mit AJAX den passenden Bereich vom Server abzufragen bietet sich also an. Ob es schlau ist, die aktuell nicht mehr benötigten Werte im Speicher zu behalten, mußt du vermutlich einfach mal ausprobieren. Es dürfte kaum Aufwand darstellen, dich bei Erreichen von Grenzbereichen noch anders zu entscheiden und beispielsweise nur den aktuellen und den vorherigen Bereich zu behalten. Die Werte würden sich ja nur endlos ansammeln, wenn man nach und nach immer weiter in eine Richtung "durchblättert". In diesem Fall aber braucht man die ganz zu Anfang geladenen Werte vermutlich nicht mehr.

- Sven Rautenberg

--
"Love your nation - respect the others."