11 Stimmen

Wie kodiere ich HTML für schnelles Rendering im IE?

Layout und Rendering von HTML-Inhalten können einige Zeit in Anspruch nehmen, wenn der HTML-Code komplex genug ist. Ich konnte keine Best Practices dafür finden, wie man HTML kodiert, um der Layout-Engine (speziell im IE) zu helfen, damit die Seite schneller neu gezeichnet wird. Gibt es eine solche Reihe von Best Practices?

Mein aktuelles spezifisches Problem ist, dass meine tabellarischen Daten (in einem Tabellenelement), die Ursachen Zeichnung der Seite zu langsam, und machen DOM-Updates (Hover-Effekte) und Animationen sehr träge. Ich bin sicher, es ist nicht JavaScript Leistung. Ich habe die Seite mit dynaTrace AJAX überprüft. Die CPU wird zu sehr belastet, wenn ich mit der Maus über Elemente fahre, aber es läuft kein JS. Und der Hover wird durch Hinzufügen/Entfernen einer Klasse zu TR-Elementen realisiert. Ich habe auch YSlow in Firefox ausprobiert, es zeigt kein besonderes Problem. Es ist auch nicht netzwerkbedingt. (Firefox baut die Seite schneller auf, aber das liegt nicht daran, dass seine JS-Engine schneller ist)

Gibt es ein Tool, mit dem ich ein Profil der Zeichnung und des Layouts im IE erstellen kann, so dass ich herausfinden kann, wo das Problem liegt? Und was kann dazu führen, dass die Zeichnung so langsam ist, so dass ich sie im HTML-Code vermeiden kann?

17voto

Dennis G Punkte 21096

Der Internet Explorer ist dafür bekannt, dass er große HTML-Tabellen nur langsam wiedergibt.

Lesen Sie diesen schönen Artikel auf MSDN: Erstellung leistungsstarker HTML-Seiten und insbesondere auf den Abschnitt über Tabellen:

  • Setzen Sie das CSS-Attribut table-layout auf fixed für die Tabelle.
  • Definieren Sie explizit col-Objekte für jede Spalte.
  • Setzen Sie das Attribut WIDTH für jede Spalte.

Dann gibt es noch einen schönen Blogbeitrag im ieblog über das Rendering von Tabellen: Tabelle Rendering .

Es läuft auf Folgendes hinaus: Versuchen Sie, den Inhalt innerhalb der Tabellen weniger komplex zu gestalten, d.h. setzen Sie eine feste Breite und lassen Sie nicht zu viele dynamische Rendering-Aktionen laufen. Der IE lädt zuerst den Inhalt und muss dann die richtige Breite für den Inhalt berechnen == langsam.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X