2009-01-29 3 views
1

J'entends toutes ces mauvaises choses sur le DOM .. N'utilisez pas l'objet Activex, XmlDom, ou est-ce "dom" .. oh Dieu vous utilisez le DOM? Quelle est la ligne droite sur cet usage.Performance du dom XML et son bon usage

Mais nous utilisons document.getElementById et ... Nom tout le temps ..

Alors, que ce que j'utilise réellement quand appeler ces méthodes? Est-ce que c'est ce que le navigateur est en train de ...

La société pour laquelle je travaille nous éloigne de l'utilisation active des objets x dom, mais n'est-ce pas ce que nous utilisons de toute façon?

Répondre

0

Il n'y a rien de mal avec XmlDom, en soi, mais les performances pour tout sauf le plus petit document XML sont assez pauvres. Sous le capot, peu de code l'utilisera. Il est beaucoup plus efficace de traiter le document XML en tant que flux, puis de travailler dessus un peu à la fois, ce que fait le navigateur. L'une des raisons pour lesquelles le DOM est lent est qu'il charge tout le document au démarrage, même si vous recherchez uniquement le premier tag - uuggh. J'ai l'impression que cela a à voir avec la façon dont le moteur XSLT est implémenté - il est difficile d'appliquer Xsl à un flux et de faire en sorte que tout fonctionne correctement.

0

Ce que IE utilise derrière les rideaux est inconnu pour moi mais il se pourrait bien que le GetElementById finisse par utiliser un composant. Ce n'est pas une mauvaise idée de laisser derrière JScript ActiveX car c'est un peu obsolète et JScript seulement.

Ce que j'essaie de dire, c'est que vous ne devriez pas vous soucier d'interroger le DOM. Tout le paradigme AJAX est basé sur cela.

Je vous recommande également d'utiliser Prototype ou jQuery.

$('comments') 

est bien plus belle que

document.GetElementById('comments') 
+0

... et bien moins standard que document.GetElementById ('comments') –

+0

rappelez-vous que $ ('# comments') vous donne une collection (c'est comme ça que jQuery fonctionne) - alors n'essayez pas de l'utiliser aveuglément sans avoir lu au moins une introduction basique sur jQuery. [Note J'ai ajouté un # qui a été manqué par jonelf] –

+2

Jason: jQuery et Prototype suivent les standards DOM et JavaScript et fonctionnent dans tous les navigateurs. À quoi veux-tu en venir? –

3

Vous devez faire la distinction entre le DOM HTML et le XML DOM, puis à nouveau entre l'utilisation du DOM XML dans un navigateur et à l'extérieur de celui-ci. S'il est vrai que le DOM XML a une empreinte mémoire importante pour les documents volumineux, le DOM MSXML6 est très rapide. Les transformations XSLT, mais aussi les requêtes XPath peuvent par définition interroger l'ensemble du document, donc je ne pense pas qu'il soit facile d'utiliser une interface de streaming pour cela. Dans un navigateur, vous manipulez le DOM HTML en JavaScript. Vous pouvez bien sûr vous déplacer dans l'espace RIA, en utilisant Flash ou Silverlight, mais cela nécessite également un contrôle ActiveX. Je recommanderais à jQuery comme proposé par jonelf, et utiliser CSS autant que possible pour les effets de l'interface utilisateur.