A mio parere è sempre più facile mantenere una separazione tra html, css e javascript e tenere tutto in file separati.
Per quanto riguarda la gestione di ajax, scrivo spesso il codice come oggetto letterale e creo un metodo ajax che è facile da usare e dove c'è un metodo simile sul lato server che analizza qualunque cosa decido di inviare, ecc.
var main = {
init: function() { // do stuff on page init
this.events().render();
},
events: function() { // bind event handlers
var self = this;
$('#element').on('click', function() {
var value = $('input.search').val();
self.ajax('search', value).done(function(data) {
$('#results').html(data);
});
});
return self;
},
render: function() {
$('body').append('some elements').fadeIn(1000);
},
ajax: function(type, value) {
return $.ajax({
url : '/controller/ajax/',
data: {type:type, value:value}
});
}
}