Comment puis-je forcer le Javascript de collecte des ordures dans IE? C'est à dire est très lent après les appels AJAX & manipulation du DOM

J'ai une page avec enchaîné menus déroulants. Le choix d'un option à partir de la première select remplit le deuxième, et le choix d'un option à partir de la deuxième select retourne un tableau de résultats correspondant à l'aide de la innerHtml fonction sur un vide div sur la page.

Le problème est, une fois que j'ai fait mes sélections et une quantité considérable de données est mis sur la page, tous les Javascript sur la page fonctionne exceptionnellement lentement. Il me semble que si toutes les données que j'ai tiré vers l'arrière via AJAX pour remplir la div est encore monopolisant beaucoup de mémoire. J'ai essayé de réglage de la restitution de l'objet qui contient l'AJAX résultats de null après l'appel de innerHtml mais avec pas de chance.

Firefox, Safari, Chrome et Opéra ne montrent pas de dégradation des performances lorsque j'utilise Javascript à insérer un grand nombre de données dans le DOM, mais dans IE, il est très apparente. Pour tester que c'est un Javascript/DOM question plutôt qu'un simple vieux IE problème, j'ai créé une version de la page qui renvoie tous les résultats sur la charge initiale, plutôt que via AJAX/Javascript, et trouvé que IE n'avait pas de problèmes de performances.

Pour info, je suis en utilisant jQuery jQuery.obtenez méthode à exécuter l'appel AJAX.

MODIFIER C'est ce que je fais:

<script type="text/javascript">
function onFinalSelection() {
  var searchParameter = jQuery("#second-select").val();
  jQuery.get("pageReturningAjax.php",
  {SEARCH_PARAMETER: searchParameter},
  function(data) {
    jQuery("#result-div").get(0).innerHtml = data;
   //jQuery("#result-div").html(data); //Tried this, same problem
    data = null;
  },
  "html");
}
</script>

Je tiens à souligner que cela ne devient un problème quand le retour data est assez grand. Elle est directement liée à la taille, que je suis capable de voir ralentissement modéré de la taille moyenne des résultats et le seul grand ralentissement quand il est à quelques centaines de dossiers + retournés.

OriginalL'auteur aw crud | 2010-05-03