Ciao a tutti,
sto creando la mia prima app javascript cercando di creare un codice ben strutturato, ma avrei bisogno di qualche vostro consiglio.
Vorrei fare questa app seguendo il modello MVC, ma ho un pò di difficoltà nel capire dove vanno inserire certe sezioni. Per renderla semplice faccio un esempio in cui abbiamo 4 pulsanti nel menu e ogni volta che l'utente ne preme uno sicarica una pagina i cui contenuti sono presi tramite JSONP.
Ho questi oggetti:
- data
- controller
- view1, view2, view3, view4
Ho degli eventi su dei bottoni che per ora non sono all'interno di nessun oggetto.
Quando si preme un bottone viene chiamato controller.load(obj), dove a seconda dell'oggetto mi prepara la query e la manda a data.query(query, view1.display).
Come vedete come secondo parametro ho messo view1. Infatti per ogni pagina ho un oggetto diverso, come view2, view3, view4, poiché la formattazione e la visualizzazione dei dati è diversa. Non so se è giusto fare comunicare il model direttamente con la view, ma il fatto di caricare via $.ajax() mi ha creato difficolta nel inserire i contenuti caricati da qualche parte. Ecco il codice:
Codice PHP:
var data = {
query: function (url, fn) {
$.ajax({
url: surl + url,
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
async: 'true',
beforeSend: function () {
// ...
},
success: function (data, status) {
if (status === 'success') {
return(data);
}
},
error: function (data, status) {
// .....
}
}).done(function (obj) {
fn(obj);
});
}};
Quindi come vedete li fasso direttamente alla funzione di uno dei 4 oggetti della mia view con data.query(query, view1.display). All'interno di view1.display(obj) prendo i contenuti, li formatto e le inserisco nel html, poi cambio pagina quando i contenuti sono pronti.
La struttura è giusta? come dovrei organizzarla in caso contrario? all'interno di quale oggetto dovrei mettere gli eventi?
Grazie mille a tutti per la pazienza, spero di essermi spiegato in modo "capibile"!