Hi C.S,
Das erscheint mir zwar sinnvoll, aber jetzt frage ich mich doch, ob es wirklich besser ist über 30 verschiedene CSS-classNames zu erstellen für die verschiedenen Höhen, die gewisse DIV-Elemente annehmen können.
Meiner Meinung nach nicht. Man muss sich immer fragen, was sinnvoller ist. Extra noch Logik (30 if-statements) einzubauen, die aus einem Wert einen CSS-Klassenamen ermittelt, erscheint nicht sinnvoll.
Ich dachte da an etwas relativ einfaches wie divElt.className = 'H' + calcHeight(i);
Dann müssten halt viele classNames namens 'Hxx' bereits existieren.
Der Wert kann direkt in die Höhe durch eine einfache Methode umgerechnet werden. Das macht auch Sinn in Bezug auf Skalierbarkeit.
Möchtest du dein Diagramm z.B. doppelt so hoch machen, so müsstest entweder 30 CSS Klassen ändern, oder in deiner Logik ein simples "* 2" irgendwo einbauen.Letzteres dient wohl eher der Wartbarkeit und ließe sich auch dynamisch zur Laufzeit ändern.
Da hast du wohl recht. Habe ich so noch gar nicht bedacht. Tatsächlich gibt es auch Balken aus nur je einem DIV, die wegen sonst auftretender Überlängen nur auf logarithmischer Skala dargestellt werden können, und das ergibt dann sehr viele verschiedene Werte, also ginge es mit denen ohnehin nicht richtig per className.
Würde das Ganze schneller gehen, wenn man die Höhen über className zuweist?
Kann ich nichts zu sagen, aber vom Gefühl her, würde ich schätzen, dass es keinen merkbaren Unterschied machen sollte.
Die fertigen Balken weden mit DOM-Methoden (appendChild) eingehängt. innerHTML wäre verutlich etwas schneller, aber das gibt ganz hässlichen JS-Quellcode... mache ich erst, wenn die Performance wirklich zum Problem wird. Bis jetzt ist es noch ganz passabel.
Danke und Gruß,
Don P