2013-07-26 1 views
0

Lors de l'utilisation de jQuery pour charger du code HTML dans un élément, les performances d'IE sont très médiocres. Chrome ne présente aucun problème de performance. Changer le mode navigateur IE ne semble pas améliorer les performances.Pourquoi RegExp.test consomme-t-il beaucoup de temps dans IE?

Lors de l'exécution du profileur dans IE, je vois que la plupart du temps est passé dans la fonction RegExp.test.

HTML:
<div id="content"></div>

JavaScript:
var htmlString = <div>...Lots and lots of content...</div>
$('#content').html(htmlString);

  • Version jQuery: 1.9.1
  • IE version: 9
+0

IE <10 a toujours été connu pour un moteur Javascript lent. Je n'ai aucune preuve à sauvegarder que 'RegExp.test' est" lent "si ... –

+0

J'ai résolu mon problème en plaçant un ensemble vide de div au début du contenu HTML. Poster la question au cas où quelqu'un d'autre éprouve cela. –

+0

N'hésitez pas à poster une réponse expliquant comment vous avez résolu votre problème! Cela aidera les autres à savoir que le problème a été résolu. –

Répondre

2

Lors du chargement d'une grande quantité de contenu, ne pas étoile t avec une étiquette d'ouverture et se terminer avec l'étiquette de fermeture.

Modifier contenu: var htmlString = <div></div><div>...Lots and lots of content...</div>

Après avoir étudié le problème que je trouve cette demande de bug jQuery qui m'a orienté dans la bonne direction. Billet jQuery # 11456

Il semble que pour la compatibilité IE, JavaScript RegExp est utilisé pour analyser le contenu en cours de chargement. Lorsque le contenu commence par une balise, il essaie de trouver l'étiquette de fin (ou quelque chose comme ça). Si la quantité de données est importante, l'analyse peut prendre un certain temps. J'ai résolu mon problème en mettant un vide au début.

+0

qu'est ce qu'un "vide"? – Toskan

Questions connexes