J'ai besoin de savoir lequel de ces deux frameworks JavaScript est meilleur pour la modification de contenu dynamique côté client pour les éléments DOM connus (par ID), en termes de performance, de mémoire utilisation, etc .:Prototype ou jQuery pour la manipulation DOM (contenu dynamique côté client)
- Prototype de $ ('id') de mise à jour (contenu)
- jQuery jQuery ('# id') html (contenu)
EDIT:.. Mon les vraies préoccupations sont clarifiées à la fin de la question.
BTW, les deux bibliothèques coexistent sans conflit dans mon application, car j'utilise RichFaces pour le développement JSF, c'est pourquoi je peux utiliser "jQuery" au lieu de "$". J'ai au moins 20 zones pouvant être mises à jour dans ma page, et pour chacune, je prépare le contenu (tables, listes d'options, etc.), basé sur un filtrage de critères côté client défini par l'utilisateur ou un événement AJAX, etc. , comme ceci:
var html = [];
int idx = 0;
...
html[idx++] = '<tr><td class="cell"><span class="link" title="View" onclick="myFunction(';
html[idx++] = param;
html[idx++] = ')"></span>';
html[idx++] = someText;
html[idx++] = '</td></tr>';
...
voici donc vient la question, ce qui est préférable d'utiliser:
// Prototype's
$('myId').update(html.join(''));
// or jQuery's
jQuery('#myId').html(html.join(''));
Autres fonctions nécessaires sont hide() et show(), qui sont présents dans les deux cadres. Ce qui est mieux? Aussi je dois activer/désactiver les contrôles de formulaire, et lire/définir leurs valeurs. Notez que je connais l'identifiant de ma zone modifiable (je n'ai pas besoin de sélecteurs CSS à ce stade). Et je dois dire que je sauvegarde de ces objets interrogés dans une structure de données pour une utilisation ultérieure, ils sont donc demandé qu'une seule fois lorsque la page est rendu, comme ceci:
MyData = {div1:jQuery('#id1'), div2:$('id2'), ...};
...
div1.update('content 1');
div2.html('content 2');
Alors, ce qui est la meilleure pratique?
EDIT: Clarifiant, je suis surtout préoccupé par:
- Utilisation de la mémoire par ces objets enregistrés (il me semble que les objets jQuery ajouter trop de frais généraux), tandis que OTOH mes éléments DOM sont déjà modifié par les extensions de Prototype (chargé par défaut par Richfaces).
- Performance (temps) et fuites de mémoire (garbage collection pour les éléments remplacés?) Lors de la mise à jour du DOM. À partir du code source, j'ai pu voir que Prototype remplace innerHTML et fait quelque chose avec des scripts en ligne. jQuery semble libérer de la mémoire lors de l'appel de "empty()" avant de remplacer le contenu.
S'il vous plaît me corriger si nécessaire ...
Merci. Comme je l'ai dit, je peux utiliser n'importe lequel d'entre eux, car les deux sont fournis avec RichFaces (j'utilise "$" et "jQuery"), donc la décision n'est pas d'installer, mais de choisir ce dont j'ai besoin. . – luiggitama
J'ai mis à jour la question, pour clarifier mes préoccupations ... – luiggitama