2009-10-07 9 views
0

Je me demandais s'il existe une alternative à la fonction jquery .html (variable)? Il semble être assez lent et se fige également en insérant le html dans le DOM.Une alternative plus rapide à la fonction .html de jQuery?

J'ai essayé d'utiliser innerHtml, et cela fonctionne très bien, extrêmement rapidement. Mais pour une raison quelconque, quand j'ai un ajax jquery ou MS dans le code qui est inséré, ces scripts fonctionnent UNIQUEMENT en FF. J'essaie d'insérer environ 2 000 lignes de code.

+1

Quand vous dites 2000 lignes de code, appelez-vous .html 2000 fois? – Matt

+0

Non, j'insère un document ASPX dans la page qui contient 2000 lignes de code. Je l'utilise en fait pour un système de tabulation, un peu comme sur facebook lorsque vous passez d'un flux à l'autre. – Adam

Répondre

3

Le problème est que le code jquery ou ms ajax (javascript) que vous insérez dans la page n'est pas évalué. la méthode .html dans jquery fait pour vous, mais si vous voulez utiliser .innerHtml, vous devez évaluer manuellement, en utilisant la fonction eval():

eval(«javascript code here»); 

Ainsi, les étapes sont, insérez le code HTML à l'aide innerHtml, puis évaluez uniquement la partie javascript à l'aide de la fonction eval.

0

Serait bien, si vous étiez plus précis sur votre problème. D'une manière générale, il n'est pas nécessaire de faire des mises à jour 2000 .html(), vous devez le joindre aux plus gros .html(), car après chaque .html() recompile tout DOM, ce qui ralentit.

0

Je lisais juste this answer et il y avait un lien dans les commentaires sur l'utilisation DOM document fragments et à quelle vitesse il est comparé à la méthode "normale" ... vérifier. Il ne compare pas réellement les benchmarks à jQuery, mais cela vous donnera une idée générale.

Questions connexes