7
votes

Performances extrêmement lentes de la fonction masquine / spectacle lorsqu'il s'agit de grand nombre d'éléments

Je ressens des performances terribles quand je vais $ ("# mydiv"). Afficher () et $ ("# mydiv"). Cacher () uniquement dans Safari et Chrome sur un Mac, tous les autres navigateurs, y compris IE6 fonctionnent bien sur PC et Mac, il s'agit donc d'un problème de webkit.

La Div "mydiv" contient un grand nombre d'éléments, y compris de nombreux cases à cocher, des onglets JQueryUI et 3 curseurs.

J'ai essayé "addclass" au lieu de montrer / masquer, j'ai essayé de définir la marge vers -10000 et de retour à 0 et aucune de ces choses ne semble aider. Y a-t-il un travail autour ou est-ce une limitation de ces navigateurs?


4 commentaires

Peut-être que cela pourrait être un problème de jQuery? Essayez d'utiliser JavaScript classique et voyez si cela a un effet. document.getElementyID ('mydiv'). Style.display = 'Aucun'


Comment avez-vous déterminé que .Show () et Hide () causent la lenteur?


Je viens de dire que ce genre de choses fonctionne généralement plus vite pour moi en webkit que les autres. o.o


Sur un Mac? Ceci est un problème spécifique Mac


4 Réponses :


4
votes

Vous pouvez essayer ceci:

$("#myDiv").css("display", "none");


2 commentaires

Je l'ai fait, ne fait absolument aucune différence


Très étrange. Normalement, WebKit effectue très bien avec un grand nombre de nœuds DOM.



4
votes

Essayez de mettre en cache votre mydiviv en faisant var $ mydiv = $ ('# mydiv') et dans votre sélecteur, il suffit d'utiliser $ mydiv . Cela évitera de créer un objet JQuery chaque fois que vous souhaitez montrer ou masquer.


1 commentaires

Essayé, mais n'aide pas du tout :(



5
votes

Cela semble être un problème déjà discuté jQuery Masquer () et Show () est trop lent dans Google Chrome . Ils ont déterminé qu'il s'agissait d'un bug en chrome.


1 commentaires

J'ai vu ça, mais ça ne donne pas une solution de contournement. En outre, Safari a le même problème.



9
votes

OK, je m'excuse pour cela, mais cela fait souffler ...

Après avoir Solid 50 JS Tweaks sans en profit, il s'avère que mon problème était dans CSS !!!

Après avoir gaspillé une journée à ce sujet, il s'avère que "taille de fond: 100%;" Crashes webkit! C'est fou ... Supprimer qu'une ligne a retiré tous mes accidents.

Encore une fois, très désolé de signaler le mauvais problème.


1 commentaires

Urg. Je l'avais aussi (Chrome et Safari Dernières sur Windows 7, si cela importe). Les navigateurs étaient vraiment lents dans la plupart des animations JQuery, alors que FX, c'est-à-dire et l'opéra allait toutes bien et je ne savais pas pourquoi. Turing Off Taille de l'arrière-plan: Auto 100%; résolvé. Merci d'avoir posté cette solution (plutôt frustrante).