39 votes

Comment est-il possible d'exécuter plusieurs instances en utilisant Backbone.Paginator.js ?

J'essaie d'utiliser Backbone.Paginator.js pour faire fonctionner plus d'une application (plusieurs instances de paginateur) sur la même page.

J'ai créé une page de test. (Naviguer vers backbone.paginator/examples/netflix-infinite-paging ).

J'ai laissé le code tel quel pour app.js et créer app2.js qui est un clone de app.js mais tout le code javascript se trouve dans un seul fichier et l'application a été renommée app2.

Deux instances fonctionnent lors du premier chargement de la page, mais les requêtes/rafraîchissements suivants ne chargent que les données de app2.js.

Est-il possible de faire fonctionner plusieurs instances sur la même page ?

  • Je souhaite utiliser un système de pagination automatique (défilement infini). J'ai essayé d'utiliser la méthode de Paul Irish jQuery Infinite Scroll plugin mais mais je ne parviens pas à le faire fonctionner.
  • Je lance l'exécution du plugin lorsque le document est prêt (ce qui n'est pas le cas). fonctionne pas, comme prévu), mais j'exécute également le code dans le ResultView de l'app2, ce qui ne fonctionne pas non plus.

Des idées sur la façon d'obtenir une solution de défilement infini avec pagination automatique ?

  • J'ai rencontré https://github.com/joneath/infiniScroll.js mais je ne le suis pas comment l'intégrer à Backbone.Paginator.js.
  • Je suis encore en train d'apprendre et toute aide serait grandement appréciée ! :)

UPDATE : Après d'autres tests sur différents navigateurs, il semble que le problème soit lié à un problème de mise en cache ou à des différences. Par exemple, dans Safari, cela fonctionne parfois (de manière aléatoire) lorsque l'on rafraîchit la page. Je ne sais pas comment déboguer ce problème. Des idées ?

1voto

Jean Paul Points 194

Questions : 1- Incluez-vous également les dépendances du framework Javascript jQuery dans votre base de code ? 2- J'ai téléchargé le fichier zip, je l'ai exécuté sur Xammp localement et il semble que ce soit une démo téléchargée et non une page de test, pouvez-vous confirmer quelle est votre page de test à partir du fichier compressé joint à votre question ? 3- Pouvez-vous créer une maquette (au cas où il y aurait du code côté serveur) dans jsfiddle ? 4- Le lien fourni pour le plugin Infinite scroll jquery est cassé, il devrait l'être : https://github.com/joneath/infiniScroll.js

Si vous souhaitez que le plugin jQuery paginator soit indépendant, vous pouvez le déclencher en tenant compte de l'élément conteneur.

....

D'après le lien suggéré, je pense que nous devrions expérimenter cela. Sinon, vous voudrez peut-être créer un cookie ou quelque chose pour que le navigateur se souvienne des changements apportés au plugin sur plusieurs instances Voici quelques idées ?

1#

          Backbone.InfiniScroll(collection, **options**)

Instanciez un nouvel objet InfiniScroll après le rendu de votre vue Backbone.

myView = Backbone.View.extend({
  initialize: function(){
    _.bindAll(this, "render");

this.render();
this.infiniScroll = new Backbone.InfiniScroll(this.collection, {success: this.appendRender});

} )} ;

2# En un coup d'œil dans le menu Options

            target: $(window), 

Peut-être devrions-nous essayer :

  $(body).find('#container1'),

-ou

 $(window).children('div').hasClass('container'),

Juste quelques idées, je ne l'ai pas expérimenté moi-même.

3# Vous pouvez faire en sorte que (1) soit une fonction javacript et la déclencher en fonction d'une classe ou de son identifiant pour initialiser le défilement sur un conteneur donné.

C'est tout ce que j'ai pu trouver comme idées en jetant un coup d'œil rapide, mais n'hésitez pas à répondre si cela peut vous aider ou au moins vous donner une direction.

4# Une autre idée est que myView peut être une variable avec un id d'un timestamp en Javascript, de cette façon vous pouvez assurer l'unicité et puisque vous appelez new alors vous pourriez avoir plusieurs instances du plugin en cours d'exécution pour votre vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X