ComputerPadawan: Skript in IE um 600% zu langsam

Beitrag lesen

Hallo!

Ich habe hier ein Skript, welches dazu dient den Inhalt einer Datenbanktabelle im Browser in einer per Javascript

Sortierbaren Tabelle darzustellen. Dazu lade ich mit PHP den Datenbankinhalt in Javascript Arrays und verspachtele

diese dann mit Sortierfunktionen um das Ergebnis über document.write auszugeben.

Klappt auch eigentlich ganz alles ganz gut. Zumindest so lange bis meine Datenbank eine kritische Größe erreicht.

(Liegt ja in der Natur der Sache). Überrascht war ich darüber wo diese Größe beim IE zu liegen scheint:

2D-Array mit 1848 Feldern.

Das erstellen der Siete mit PHP und das laden der JAvaScript Arrays geht echt fix. Genauso das sortieren der Einträge

(insgesamt was in der Größenordnung 20-30ms).

Aber das darstellen!

Ich reduzierte die Codezeilen also auf ein Minimum

[CODE]

...
for(var i = 0; i < Zeilen; ++i)//Zeilen -> Anzahl der darzustellenden Zeilen (im Beispiel ca. 800)
{
  ...
  if(!not) //Sofern die betreffende Zeile überhaupt angezeigt werden soll
  {
    ...
    var jetzt = new Date();
    Timebase = jetzt.getTime();

for(var j=0; j<spalten;++j) //Spalten -> Anzahl der darzustellenden Spalten (im Beispiel 6)
    {
      tab += "<td> NOPE </td>";
    }

var jetzt = new Date();
    Time=jetzt.getTime();
    TimeC=TimeC+(Time-Timebase);

...
  }
  ...
}
...
//Und später wird "tab" je nach Verfügbarkeit entweder mit "innerHTML" oder "document.write" ausgegeben
[/CODE]

und bekam diese Ergebnisse für TimeC:
IE                 9526ms
Netscape         15ms
Opera              <1ms

Während der IE läuft habe ich übrigends eine CPU-Last von 100%. Er tut also wirklich was.

Ich werden de ganze Code umstricken müssen, weil das Skript für eine Intranetapplikation im IE umfeld gedacht ist. Aber

dazu müsste ich ersteinmal verstehen wo dieser eklatante Laufzeitunterschied herkommt.

Ich wusste ja, das Opera schnell ist, aber ist der IE wirklich so langsam? Oder serviere ich nur IE unverträglichen

Code? Aber kann das bei den paar Zeilen überhaupt sein?

Hatte jemand schonmal so ein problem, oder kann es sich einer von euch irgendwie erklären?

Es hoft auf Antwort, euer
Coputer Padawan