2012-07-01 10 views
38

Sto cercando di utilizzare Backbone.Paginator.js per eseguire più di un'app (più istanze di paginator) sulla stessa pagina.Come è possibile eseguire più istanze utilizzando Backbone.Paginator.js?

I created a test page. (Passare a backbone.paginator/examples/netflix-infinite-paging).

ho lasciato il codice come è per app.js e creare app2.js, che è un clone di app.js ma tutto il codice javascript è situato in un unico file e l'applicazione è stato rinominato in app2.

Due istanze funzionano al primo caricamento della pagina ma successive richieste/aggiornamenti caricano solo i dati di app2.js.

È possibile eseguire più istanze sulla stessa pagina?

  • Sono interessato a utilizzare un auto-paging (infinito/scroll infinito) in modo Ho cercato di usare Paul irlandese di jQuery Infinite Scroll plugin ma io sono in grado di farlo funzionare.
  • Sto avviando il plug-in per l'esecuzione su documenti pronti (che non funziona come previsto), ma anche eseguendo il codice in ResultView di app2, che non funziona altrettanto bene.

Qualche idea su come ottenere una soluzione a scorrimento automatico a scorrimento automatico?


UPDATE: Dopo ulteriori test tra i vari browser, sembra che il problema potrebbe essere quella di caching edizione/differenze. Ad esempio, in Safari, funziona a volte (in modo casuale) durante l'aggiornamento della pagina. Non sono sicuro di come eseguire il debug di questo. Qualche idea?

+2

si dovrebbe mettere la pagina di test su jsFiddle –

+2

Per verificare se il problema è davvero un problema di cache, prova ad aggiungere una query GET ai tuoi nomi file javascript. Questo dirà al browser che è un file diverso, anche se sul lato server il file non sarà cambiato. '' – Kelvin

+0

Puoi anche disabilitare la memorizzazione nella cache in chrome aprendo la barra degli strumenti sviluppatore, facendo clic sull'icona degli ingranaggi e disabilitando la cache. http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development – mickeyreiss

risposta

1

Domande: 1- Sono incluse anche le dipendenze del framework jQuery Javascript nella codebase? 2- Ho scaricato il file zip, l'ho eseguito su Xammp localmente e sembra una demo scaricata non una pagina di test, puoi confermare quale pagina è la pagina di test dal file compresso allegato alla tua domanda? 3- È possibile creare un mockup (nel caso in cui si verifichi un certo numero di codice lato server) in jsfiddle? 4- Il link fornito per l'infinito plug-in jQuery di scorrimento è rotto, dovrebbe essere: https://github.com/joneath/infiniScroll.js

Se si vuole fare il Paginator jQuery plugin per essere indipendente, si potrebbe desiderare di innescare considerando l'elemento contenitore così

....

Dal collegamento suggerito, penso che dovremmo sperimentare con questo. Altrimenti potresti voler creare un cookie o qualcosa del browser per ricordare le modifiche al plug-in su più istanze. Ecco alcuni pensieri?

1 #

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

un'istanza di un nuovo oggetto InfiniScroll dopo la vostra vista Backbone è stato reso.

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

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

} )};

2 # A colpo d'occhio dal menu Opzioni

  target: $(window), 

Forse dovremmo provare:

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

oppure

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

Solo alcune idee, non hanno sperimentato me stesso-

3 # Potresti voler rendere (1) una funzione javacript e attivarla in base a una classe o al suo id per inizializzare lo scroll su un contenitore desiderato.

Queste sono tutte le idee che potrei trovare dando un'occhiata veloce, ma sentitevi liberi di rispondere se aiuta o almeno dà qualche direzione.

4 # Un altro pensiero è che myView può essere una variabile con un id di un timestamp in Javascript, in questo modo è possibile garantire l'unicità e dal momento che si sta chiamando nuovo, allora si potrebbe avere diverse istanze del plug-in in esecuzione per la visualizzazione.

Problemi correlati