в jQuery Аякс (), используя успех, ошибка и полной и сделал(),.не() и всегда()



вопросы:




  1. должны ли мы изменить наше кодирование, как предлагается ниже?

  2. есть ли разница между .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"); });
555   1  

1 ответ:

Ну нет никакого преимущества делать это в этой конкретной ситуации.

точка .done().fail().always() методы-это то, что вы можете

  1. присоединить несколько обработчиков
  2. делайте это в любом месте, а не только при вызове $.ajax

если вы находитесь в $.ajax вызов сайта только прикрепление одиночных обработчиков, то эти преимущества на самом деле не вступают в игру.

так что вы можете вернуть обещают, а другие могут прикрепите свои собственные обработчики.

пример обновления плагинов после запроса ajax:

$.ajaxPrefilter(function(opt, origOpt, jqxhr) {
    jqxhr.always(function() {
        $("[data-plugin]").plugin();
    });
});

Comments

    Ничего не найдено.