Je suis actuellement en train de développer un programme analytique assez grand avec un backend Django/Python et j'utilise jQuery.Serait-il préférable d'utiliser Knockout.js dans cette situation?
Disons que toutes mes statistiques sont basées sur le concept d'un "Person
". Après avoir visualisé les statistiques d'aperçu, quelqu'un peut vouloir ouvrir un individu Person
et regarder leurs statistiques.
Actuellement, j'envoie une requête AJAX à mon serveur, Django récupère la personne, lui restitue un arbre DOM entier et le renvoie. jQuery prend le <div>
retourné et l'ajoute à l'arbre DOM des documents en même temps que les autres personnes ouvertes.
Donc, chaque Person
a son propre div avec tous les mêmes éléments, juste avec leurs informations. La personne que vous voyez actuellement est display:block;
tandis que je display:none;
d'autres personnes. Tous les éléments (tels qu'un bouton permettant d'afficher des informations plus détaillées) qui doivent retourner au serveur pour extraire des informations plus détaillées sont codés avec le système de templates de Django et se voient attribuer un clic sur quelque chose comme getMoreInformation('myUUID');
. Je voudrais également noter que je me trouve en utilisant fréquemment les identificateurs UUID dans les identifiants d'éléments afin qu'AJAX puisse trouver et modifier les informations de la bonne personne si nécessaire.
J'ai récemment découvert Knockout.js et je me demande si ce serait mieux pour moi de l'utiliser dans cette situation, et ont des préoccupations au sujet de la vitesse, etc.
Il semble que Knockout.js serait « la bonne chose à faire "car il fournit une meilleure relation 1-à-1 entre les données sur le backend et comment il est représenté dans le Javascript (modèles à modèles) au lieu d'éléments DOM individuels avec id passés pour toutes les fonctions. Sans compter que cela réduirait drastiquement la quantité d'éléments dans l'arbre DOM.
Cependant, mon principal public est IE8, et j'ai des problèmes sur Knockout.js ayant des problèmes de performance. Alors que actuellement je cache et montre les divs liés aux personnes que vous étudiez, Knockout.js devrait passer par tous les data-bind
et utiliser Javascript pour remplacer leur contenu.
Quels sont les problèmes de performances liés à l'utilisation de Knockout.js dans une situation comme celle-ci? Ou seraient-ils si minimes qu'ils ne comptent pas? Difficile de trouver des benchmarks, est-ce que quelqu'un a connu une interface utilisateur plus lente en passant à Knockout.js? (Moins d'éléments DOM + Knockout.js vs plus d'éléments DOM sans Knockout.js dans une application "monde réel" est un peu ce que je cherche ici.)
est knockout.js mieux que ... quoi? il n'y a rien à comparer. –
@KevinB Serait-ce mieux que ce que je fais actuellement (les 4 premiers paragraphes)? – MatthewKremer