2011-11-28 8 views
16

Ho letto molte esercitazioni su Backbone.js, ma la maggior parte di esse riguarda oggetti statici.Esistono esercitazioni di Backbone.js che insegnano ".sync" con il server?

Naturalmente, ho dati sul server. Voglio un tutorial che mostra come backbone.js può comunicare con il server per recuperare dati, pubblicare dati, ecc.

Questo è .sync, giusto? Ho letto la documentazione di backbone.js, ma ancora sfocato su come utilizzare questa funzione.

Oppure qualcuno può mostrarmi un esempio?

Secondo: http://documentcloud.github.com/backbone/#Sync

Backbone.sync è la funzione che Backbone chiama ogni volta che tentativi di leggere o salvare un modello al server.

Ma quando? Dove inserisco la funzione? Non so come usarlo e la documentazione non fornisce alcun esempio. Quando vengono caricati i dati nei miei modelli? Devo definire quando ... giusto?

+0

.sync invia le richieste XHR POST o PUT al server, al fine di salvare lo stato del modello client (o GET per recuperare lo stato dal server). Aiuta a guardare il traffico di rete utilizzando gli strumenti di sviluppo Web del tuo browser. – Thilo

+0

Quindi con .sync, non devo più usare .ajax() di JQuery? (per ottenere dati sui miei modelli, ecc.) – TIMEX

+0

Se il .sync predefinito funziona per te, allora sì (usa .ajax sotto le copertine per te). Se è necessario modificare ciò che fa, probabilmente è necessario sostituirlo con un codice che utilizza direttamente .ajax. – Thilo

risposta

2

Non sono gratuiti, ma i seguenti screencast hanno entrambi un pezzo sul lavoro di back-end e su come inviare dati e ottenere dati da Backbone.

  1. Tekpub è uno screencast 9 parte su asp.net MVC3, con tutta la sesta parte sull'utilizzo di spina dorsale di scrivere un modulo di amministrazione per gestire le produzioni. mostra tutto sulla gestione di routing in MVC3 e l'invio & che ricevono i dati

  2. Peepcode

+3

Purtroppo il tanto atteso terzo episodio di questa serie, che ha affrontato il networking e la persistenza, passa improvvisamente a Coffeescript, il che limita davvero la sua accessibilità, credo. –

+0

sì, è vero, tuttavia capisco abbastanza bene il coffeescript per sapere in cosa è compilato ... hai assolutamente ragione anche se limita l'accessibilità per la maggior parte degli hobbisti javascript. – Sander

+2

@sandro grazie. Come mai non ci sono tutorial "gratuiti" per Backbone.sync? – TIMEX

3

È possibile ignorare la funzionalità di sincronizzazione nativa backbone se si ignora che:

Backbone.sync = function() { 
    //Your custom impl here 
} 

Dopo che questa funzione viene chiamata ogni volta che si chiama una funzione spina dorsale come .save() su modelli o .fetch() sulle collezioni. Non devi più preoccuparti del trasporto dei dati.

Vorrei suggerire di dare un'occhiata al sorgente di Backbones e vedere come viene implementata la funzione di sincronizzazione predefinita. Quindi crea il tuo o adotta il tuo server per supportare la funzione nativa.

11

Non hai mai veramente guardare .sync, a meno che non si prevede di sovrascrivere. Per gli usi normali, puoi semplicemente chiamare model.save() ogni volta che vuoi e che eseguirà un post o un put (a seconda che il record esista già). Se si desidera ottenere i dati dal back-end, utilizzare collection.fetch()

Avrete ovviamente anche bisogno di specificare un URL, farlo attraverso l'attributo collezione, collection.url

+1

Questa è la risposta: '.sync' succede quando chiamiamo' model.save() '. – Ziggy

+0

@Ziggy Certo, è quando viene chiamato '.sync', ma non aiuta a spiegare la magia che è offuscata e causa la confusione di TIMEX. Gli URL sono impliciti in base al modello e alla rispettiva definizione della raccolta del modello. – JoeBrockhaus

Problemi correlati