Suche in der HTML-Tabelle

8

Ich habe einen großen Tisch mit fast 5000 Reihen. Ich verwende das folgende jquery-Snippet, um diese Tabelle nach einem bestimmten Text zu durchsuchen.

%Vor%

Nun benötigt dieses Skript einige Zeit, um ausgeführt zu werden, da es jede Zelle jeder Zeile durchläuft. Betrachtet man die Tabelle mit 6 Zellen hintereinander, ist die Gesamtzahl der Iterationen fast 6 * 5000 = 30000 !
Gibt es einen Vorschlag zur Optimierung dieses Snippets?

    
Sudipta Roy 15.03.2013, 06:27
quelle

3 Antworten

3
___ answer5431102 ___

Sie könnten auch eine benutzerdefinierte Erweiterung wie:

erstellen %Vor%

Und benutze es so:

%Vor%

Hier ist ein laufendes Beispiel: Ссылка

    
___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser JavaScript-Bibliothek, die durch die Minimierung der Abweichungen in allen Browsern Document Object Model (DOM) Traversal, Ereignisverarbeitung, Animationen und AJAX-Interaktionen ermöglicht. Eine mit jQuery gekennzeichnete Frage sollte mit jQuery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein. ___ qstntxt ___

Ich habe einen großen Tisch mit fast 5000 Reihen. Ich verwende das folgende jquery-Snippet, um diese Tabelle nach einem bestimmten Text zu durchsuchen.

%Vor%

Nun benötigt dieses Skript einige Zeit, um ausgeführt zu werden, da es jede Zelle jeder Zeile durchläuft. Betrachtet man die Tabelle mit 6 Zellen hintereinander, ist die Gesamtzahl der Iterationen fast 6 * 5000 = 30000 !
Gibt es einen Vorschlag zur Optimierung dieses Snippets?

    
___ qstnhdr ___ Suche in der HTML-Tabelle ___ answer15430819 ___

Überprüfe die Leistung der folgenden Codes mit deiner:

Code: (ausgenommen jquery.js)

%Vor%     
___ answer15447474 ___

Zunächst möchte ich darauf hinweisen, dass das Durchsuchen von 5000 Zeilen nicht so schwer sein sollte. Ich würde auch in andere Sachen schauen, die gleichzeitig laufen, die einen Einfluss auf die Leistung haben könnten.

Ich garantiere Ihnen auch nicht, dass die untenstehende Lösung die optimale ist, aber von den Tests, die ich durchgeführt habe, kann ich eine Steigerung der Geschwindigkeit um etwa 50% sehen. Ich bin immer noch dabei, diesen Code zu optimieren, ich werde dies weiter aktualisieren, während ich weitermache. Ich plane auch, in ein oder zwei Tagen selbstsichere Tests von jspref durchzuführen.

Mein Ansatz

  1. Javascript natives %code% ist schneller als jQuerys %code%
  2. DOM Traversing ist viel schneller mit #id.
  3. jQuerys %code% verwendet Javascript %code% unter der Haube. Wenn Sie es direkt verwenden können, wird es eine Leistungssteigerung haben.

    %Vor%

Hier ist ein funktionierendes jsFiddle

    
___
Ron van der Heijden 15.03.2013 11:21
quelle
3

Überprüfe die Leistung der folgenden Codes mit deiner:

Code: (ausgenommen jquery.js)

%Vor%     
Amol M Kulkarni 15.03.2013 11:08
quelle
1

Zunächst möchte ich darauf hinweisen, dass das Durchsuchen von 5000 Zeilen nicht so schwer sein sollte. Ich würde auch in andere Sachen schauen, die gleichzeitig laufen, die einen Einfluss auf die Leistung haben könnten.

Ich garantiere Ihnen auch nicht, dass die untenstehende Lösung die optimale ist, aber von den Tests, die ich durchgeführt habe, kann ich eine Steigerung der Geschwindigkeit um etwa 50% sehen. Ich bin immer noch dabei, diesen Code zu optimieren, ich werde dies weiter aktualisieren, während ich weitermache. Ich plane auch, in ein oder zwei Tagen selbstsichere Tests von jspref durchzuführen.

Mein Ansatz

  1. Javascript natives for ist schneller als jQuerys $(object).each();
  2. DOM Traversing ist viel schneller mit #id.
  3. jQuerys .html() verwendet Javascript innerHTML unter der Haube. Wenn Sie es direkt verwenden können, wird es eine Leistungssteigerung haben.

    %Vor%

Hier ist ein funktionierendes jsFiddle

    
Kishor Kundan 16.03.2013 09:03
quelle

Tags und Links