2012-11-28 4 views
2

Tout d'abord: je pense que cette question s'applique à la plupart des frameworks MVWTF JavaScript actuels dotés d'une couche de persistance, sinon tous.Travailler avec des ensembles de données volumineux dans AngularJS

Ma tâche actuelle consiste à réécrire la section d'administration des commentaires d'un site Web dans Angular pour accélérer le flux de travail de ceux qui doivent approuver ou marquer les commentaires comme spam. Le site Web a déjà un assez grand nombre de commentaires et d'autres arrivent chaque jour.

La question est: comment gérer ce jeu de données dans Angular? Tous les exemples que j'ai vus sont bons et dandy mais tous fonctionnent avec de petits tableaux de données. Nous avons réfléchi à quelques idées, la meilleure étant: Téléchargez les derniers commentaires X au démarrage de l'application JS puis, lorsque vous recherchez ou affinez la liste après avoir appliqué un filtre angulaire sur l'ensemble de données existant (côté client), tirez la correspondance données du serveur (ou un sous-ensemble des données correspondantes si nous paginons) et fusionner avec les données que nous avons déjà sur le client. De cette façon, les données sur le client seront de plus en plus étendues et les recherches ultérieures sur le client deviendront de plus en plus précises.

Espère que cela a du sens.

D'autres idées?

Merci.

Répondre

2

La plus grande chose dont vous devez faire attention est de créer des ballonnements en dupliquant le grand objet/tableau dans plusieurs étendues dans votre application. Cela peut être provoqué simplement en plaçant l'objet large dans la $ scope d'un contrôleur, puis en le passant à $ scope d'une directive (ng-repeat par exemple). Une bonne façon d'étudier cela dans votre application serait de vérifier Angular Batarang

Si cette énorme quantité de données est quelque chose que vous allez utiliser parmi plusieurs contrôleurs, directives et services (ce que je suppose), c'est probablement une bonne idée de le placer dans $ rootScope ou peut-être son propre service. Le cas de $ rootScope serait si vous voulez juste le stocker en tant que données et y accéder comme vous s'il vous plaît. Le cas d'un service serait si vous voulez avoir des méthodes réutilisables pour interroger/ajouter/supprimer du grand bloc de données, vous pourriez même avoir le service manipuler le $ http.get des données aussi bien.

J'espère que cela aide.

Questions connexes