7 Stimmen

jQuery + tablesorter + IE7 + große Tabellen = Hölle

Ich verwende jQuery und das tablesorter Plugin ausgiebig genutzt, aber bei Tabellen von beträchtlicher Größe (900-1200 Zeilen) bringt das Plugin den Internet Explorer (ich habe es mit 7 und 8 versucht) einfach zum Stillstand.

Ja, ich würde gerne paginieren (geht nicht); ja, ich würde gerne allen sagen, dass sie Chrome benutzen sollen (geht nicht), aber ich frage mich, ob jemand eine andere Lösung hat. Vielleicht ein schnelleres Plugin zum Sortieren von Tabellen oder etwas, das ich ausprobieren kann. Ich möchte nicht wirklich eine serverseitige Sortierung durchführen.

Gracias.

3voto

David Tang Punkte 89390

Wie wäre es mit einer clientseitigen Paginierung? Es ist wahrscheinlich, dass der Geschwindigkeitsverlust durch die DOM-Manipulation und nicht durch den Sortieralgorithmus verursacht wird. Speichern Sie also die Daten in einem Javascript-Array, zeigen Sie nur die ersten 20 Elemente an, und sortieren Sie nach dem Array und nicht nach den Elementen.

1voto

Stephen Punkte 18461

Ich habe genau das gleiche Problem mit genau den gleichen Werkzeugen gehabt. Das Beste, was Sie tun können, ist zu versuchen, Ihr HTML so sauber wie möglich zu gestalten. Und denken Sie immer daran, ein tfoot-Element VOR dem tbody-Element einzufügen. Das hilft dem IE, die Tabelle schneller zu rendern:

<table>
    <thead>
        <tr>
            <th>headers here</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td>footers here</td>
        </tr>
    </tfoot>
    <tbody>
        <tr>
            <td>body here</td>
        </tr>
    </tbody>
</table>

Auch wenn Sie keine Fußzeile brauchen, sollten Sie es so machen. Der einzige andere Rat, den ich habe, wäre, einige CSS-Tricks auszuprobieren, um die Tabelle entweder zu stylen oder auszublenden, bis das Laden des Javascripts abgeschlossen ist. Vielleicht beginnen mit einem animierten Laden gif, und entfernen Sie es, wenn das Javascript fertig ist.

-1voto

sammy Punkte 223

IE 8 und Firefox können offenbar keine großen Tabellenabzüge verarbeiten. Sie brechen definitiv bei etwa 1000 Zeilen ab. Ich habe das bei meiner Anwendung gesehen.

Chrome ist buchstäblich superschnell und lädt 1000 Zeilen HTML-Tabellenausgabe 100-mal schneller herunter.

Es gibt ein Problem mit Chrome. Nach etwa 4.000 Zeilen fallen die Klassen innerhalb meiner Zellentabellen aus. Der Mauszeiger, der mit einer Aktion verbunden ist, verschwindet einfach und wird nicht angezeigt, wenn sich die Maus über einer Tabellenzelle befindet.

Das Herunterladen einer Tabelle mit 5000 Zeilen dauert zwar 100 Mal so lange, aber die Klassenverknüpfungen brechen in IE8 oder Firefox nicht ab. Aber wer kann es sich schon leisten, so lange zu warten.

Ich glaube, ich habe einen Fehler bei Chrome gemeldet und nie eine Antwort erhalten.

Da meine Webseite in einer geschlossenen Umgebung läuft, ist es für mich ein Leichtes, alle zur Verwendung von Chrome zu zwingen.

Dies ist der Punkt, an dem OPEN-SOURCE zum Tragen kommt. Es gibt niemanden, den man um Hilfe bitten kann!

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