backbone.js - comment et quand le spectacle d'un spinner
Est-il une sorte de crochets de la colonne vertébrale où je peux facilement dire "à chaque fois que les collections de l'extraction de données, afficher le compteur, le cacher quand ils ont terminé"?
J'ai le sentiment que ça va être plus compliqué que cela, et nécessitent l'écrasement des fonctions spécifiques. Quand dois-je montrer le spinner? Sur fetch()
ou refresh()
ou autre chose?
Vous devez vous connecter pour publier un commentaire.
Épine dorsale n'est pas de déclencher un événement lorsque
Collection::fetch()
commence (voir le code source), de sorte que vous aurez à remplacer lesfetch
méthode. Peut-être quelque chose comme ceci:Cela va remplacer le
fetch
méthode pour vous donner un événement lors de l'extraction commence. Toutefois, cela ne déclenche l'événement sur les instance de la collection, donc si vous avez un tas de différentes collections, vous aurez à écouter pour cet événement sur chaque collection.Vous pouvez utiliser jQuery ajaxStart et ajaxStop. Ceux-ci vont à l'échelle mondiale lorsqu'une requête ajax, afin de récupérer et de sauvegarder sera la cause de ces. Ajouter votre code pour afficher la touche de navigation dans le démarrage et le cacher dans la fin.
dans Backbone.js 1.0.0 vous pouvez utiliser le
request
etsync
événements http://backbonejs.org/#Events-catalogCela va dans la vue.
Ceci peut être appliqué par collection ou par modèle, voici un peu de CSS pour le spinner http://abandon.ie/notebook/simple-loading-spinner-for-backbonejs
La façon dont je l'ai fait sans écraser épine dorsale est:
En vue
L'autre voie serait de supprimer le chargement de la classe lorsque les modèles sont ajoutés, en général, vous avez:
Ces serait presque identique dans la plupart des cas, et que le chargeur est vraiment pour les utilisateurs de l'expérience de l'enlever juste avant l'affichage du contenu de sens.
Et un peu de mise à jour. Depuis Déc. 13, 2012 ont été ajoutés un
"request"
événement Fédérateur.de synchronisation, ce qui déclenche à chaque fois qu'une demande commence à être effectuée sur le serveur. Ainsi, depuis Janv. 30, 2012 ont été ajoutés un"sync"
événement, qui déclenche à chaque fois que les modèles de l'état a été correctement synchronisé avec le serveur (créer, d'enregistrer, de les détruire).Donc, vous n'avez pas besoin de remplacer ou de extand le natif de l'épine Dorsale de méthodes. Pour l'écoute de départ/arrivée de l'extraction de l'événement, vous pouvez ajouter un écouteur à votre modèle/collection comme ceci par exemple:
Vous pouvez créer une méthode appelée
sync
sur l'un de vos modèles, et backbone.js appellent pour se synchroniser. Ou vous pouvez simplement remplacer la méthodeBackbone.sync.
Cela vous permettra de faire le changement dans un seul endroit dans votre code source.J'ai utilisé NProgress dans ma colonne vertébrale et c'est le meilleur fonctionnement du chargeur/spinner là.
Utilisation épine Dorsale méthode de synchronisation,
Il fera appel à chaque fois épine dorsale méthode de synchronisation, pas uniquement extraire, enregistrer, mettre à jour et supprimer également
/* cours d'équitation de l'application de synchronisation de chaque demande de venir l'entendre, sauf direct ajax */