Grundsätzlich habe ich eine riesige Tabelle, die noch größer wird, wenn der Benutzer nach unten scrollt (automatisches Vorladen nachfolgender Zeilen). Irgendwann wird der Browser träge, er beginnt für einen Moment zu hängen, während ich rufe oder versuche zu scrollen und träger wird es, je mehr Zeilen es bekommt. Ich frage mich, ob die Anzahl der Elemente, die diese Seite enthalten kann, begrenzt ist? Oder vielleicht ist es nur mein Javascript, das irgendwohin leckt (obwohl ich nur einen Event-Handler habe, der an den tbody der Tabelle angehängt ist) und ein Skript, das blubbernde Mousedown-Ereignisse analysiert.Gibt es eine Begrenzung der Anzahl der HTML-Elemente, die der Browser ohne Probleme anzeigen kann?
Update: Verzögerung wird nach tausend geladenen Zeilen bemerkbar. Die Geschwindigkeit von scroll selbst ist ziemlich erträglich, aber zum Beispiel ist das Hervorheben der angeklickten Zeile (mit Hilfe eines einzelnen Ereignishandlers auf tbody) schmerzhaft (es dauert mindestens 2-3 Sekunden und die Verzögerung wächst mit der Anzahl der Zeilen). Ich beobachte Verzögerungen in allen Browsern. Es ist nicht nur ich, sondern fast jeder, der die Seite besucht, also denke ich, dass es in gewisser Weise jede Plattform betrifft.
aktualisieren: Ich kam hier mit einfachen Beispiel folgenden: http://client.infinity-8.me/table.php?num=1000 (Sie, was Zahl, die Sie wollen num passieren kann), im Grunde macht es eine Tabelle mit num Zeilen und hat einen einzigen Event-Handler ein angebracht Elterntabelle. Ich sollte daraus schließen, dass es tatsächlich keinen merklichen Leistungsabfall gibt, verursacht durch die Anzahl der Kindelemente. Also ist es wahrscheinlich ein Leck woanders :(
für die komplette Antwort post Ihren Code/URL bitte (es ist alles ohne das) – galambalazs
Ok, kann ich nicht den Link auf die ursprüngliche Seite, da es nicht öffentlich ist. Ich werde eine Beispielseite finden. – jayarjo
Ich würde ** nicht zustimmen **, dass es in IE ** keine bemerkenswerte Drop-down in Leistung ** gibt. Wenn Sie es auf 1 setzen und dann auf 2000 zurücksetzen, gibt es eine Verzögerung von 2-3 Sekunden, bevor die Tabelle mit dem Rendern beginnt (da IE in meiner Antwort unten darauf wartet, dass die gesamte Tabelle geladen wird) – scunliffe