Hi!
Kurze Erklaerung zu Beginn:
Ich habe vorher noch nie mit jquery gearbeitet, aber da Visual Studio (2010) mir jquery mit in mein Projekt getan hat (v.1.4.1), dachte ich mir, dass es wirklich mal an der Zeit ist, sich damit zu beschaeftigen. Bisher laeuft das auch ganz gut und jquery hat mir schon einige Arbeit abgenommen. Jetzt bin iach auber auf ein Problem gestossen, zu dem ich auch nicht wirklich im Internet fuendig werde.
Aufgabenstellung:
Ich hab ein Flatfile (Semikolon separierte Daten, jede Reihe ein neuer Datensatz) dessen Daten von meiner kleinen Anwendung verarbeitet und dargestellt werden sollen. Es handelt sich dabei um eine Anzahl von Datensaetzen im Bereich von 1500 bis 2000 Zeilen mit je 20 bis 30 Spalten. Und hier kommt das Problem: Javascript braucht mit meinem bisherigen Ansatz zu lang, um die Tabelle zu erstellen. Der Browser (IE8) schmeisst nach einiger Zeit den Dialog, dass ein Script den Browser ausbremst. Klar. Kann ich sogar nachvollziehen.
Ich nutze im Moment Code wie diesen hier:
myRow[][] enthaelt Zeilen und Spalten des Flatfiles
#areaMenu ist ein select, dessen Auswahl dargestellt werden soll (sagen wir mal sowas ein Stadtname)
#tablebody ist natuerlich der body meiner Tabelle
for (var i = 0; i < myRow.length; i++) {
if ($("#areaMenu").val() == myRow[i][11]) {
$("#tablebody").append("<tr></tr>");
for (var x = 0; x < myRow[i].length; x++) {
$("#tablebody > tr:last").append("<td>" + myRow[i][x] + "</td>");
}
}
}
Das funktioniert auch ganz gut, ist aber recht langwierig. So wie ich das verstehe wird ja auch jedes einzelne tr und td fuer sich ins Dom gehaengt. Nett, wenn man mal eine oder ein paar Zeilen manipuliert.
Normalerweise wuerde ich jetzt hingehen und erstmal die Tabelle basteln und dann ins Dom haengen. Und genau da haperts. Kann jquery das nicht? Ich bekomme beim Suchen immer nur aehnliche Loesungen wie meine. Im Moment wuerde ich einfach einen fetten String bauen, der das Markup des table bodies darstellt und den dann versuchen einzubauen. Aber ist das der beste Weg?
Signaturen sind bloed.