в jQuery Аякс (), используя успех, ошибка и полной и сделал(),.не() и всегда()
вопросы:
- должны ли мы изменить наше кодирование, как предлагается ниже?
- есть ли разница между
.done()&success:,.fail()&error:и.always()&complete:?
преамбула:
я собирал jQuery.ajax вызов, который я сделал успешно в прошлом тоже. Что-то вроде этого:
$.ajax(
{
url: someUrl,
type: 'POST',
data: someData,
datatype: 'json',
success: function (data) { someSuccessFunction(data); },
error: function (jqXHR, textStatus, errorThrown) { someErrorFunction(); }
});
при быстром взгляде на некоторые документация, я наткнулся на ссылку, в которой говорится, что успех, ошибка и полные обратные вызовы устарели с jQuery 1.8. Чтобы подготовить код для их последующего удаления, используйте jqXHR.сделать(), jqXHR.fail (), и jqXHR.всегда() вместо этого.
поэтому мы должны начать программировать что-то вроде этого:
$.ajax( "example.php" )
.done(function (data) { someSuccessFunction(data); })
.fail(function (jqXHR, textStatus, errorThrown) { someErrorFunction(); })
.always(function() { alert("complete"); });
1 ответ:
Ну нет никакого преимущества делать это в этой конкретной ситуации.
точка
.done().fail().always()методы-это то, что вы можете
- присоединить несколько обработчиков
- делайте это в любом месте, а не только при вызове
$.ajaxесли вы находитесь в
$.ajaxвызов сайта только прикрепление одиночных обработчиков, то эти преимущества на самом деле не вступают в игру.так что вы можете вернуть обещают, а другие могут прикрепите свои собственные обработчики.
пример обновления плагинов после запроса ajax:
$.ajaxPrefilter(function(opt, origOpt, jqxhr) { jqxhr.always(function() { $("[data-plugin]").plugin(); }); });
Comments