В чём разница done и success в ajax?
Практически ни в чём. Функции, переданные туда, будут выполнены при одинаковых условиях.
Разница лишь в том, как передаётся функция-обрабочик события done (при инициализации запроса в первом случае и привязкой к обещанию во втором случая). На практике разница заключается в том, что втором примере можно указать сразу несколько функций, которые будут вызваны при завершении:var deferred = $.ajax({ ... });
deferred.done(function(data) { /* Действие 1 */ });
deferred.done(function(data) { /* Действие 2 */ });
success   : function (data) {}
устаревший метод, при этом удаленный с версии 3.0
дока