Alguém pode me ajudar?
Eu não sou capaz de entender a diferença entresuccess
e .done()
de$.ajax
.
Se possível, dê exemplos.
jquery
jquery-deferred
Poonam Bhatt
fonte
fonte
Respostas:
Em suma, desacoplar a função de retorno de chamada de sucesso da função ajax para que mais tarde você possa adicionar seus próprios manipuladores sem modificar o código original (padrão do observador).
Encontre informações mais detalhadas aqui: https://stackoverflow.com/a/14754681/1049184
fonte
success:
usado como parâmetro e.success()
como método em ajqXHR
. Este último está sendo descontinuado, mas o primeiro é o que o OP estava perguntando.success
só dispara se a chamada AJAX for bem-sucedida, ou seja, em última análise, retorna um status HTTP 200.error
dispara se falhar ecomplete
quando a solicitação for concluída, independentemente do sucesso.No jQuery 1.8 no
jqXHR
objeto (retornado por$.ajax
)success
foi substituído pordone
,error
porfail
ecomplete
poralways
.No entanto, você ainda deve conseguir inicializar a solicitação AJAX com a sintaxe antiga. Então, eles fazem coisas semelhantes:
Esta mudança é para compatibilidade com o objeto adiado do jQuery 1.5 . Adiado (e agora
Promise
, que tem suporte total ao navegador nativo no Chrome e FX) permite que você encadeie ações assíncronas:Essa cadeia de funções é mais fácil de manter do que uma pirâmide aninhada de callbacks que você obtém
success
.No entanto, observe que
done
agora está obsoleto em favor daPromise
sintaxe que usathen
:Vale a pena adotar isso porque
async
eawait
promessas de extensão aprimorou a sintaxe (e tratamento de erros):fonte
success
, no jQuery 1.8 que foi substituído pordone
. Eles funcionam da mesma maneira, masdone
são mais consistentes com o resto do jQuery..done
Foi uma tentativa inicial (e agora sem saída) da jQuery no que se tornouPromise
e agora tem um suporte de linguagem bastante abrangente. Em novos projetos, eu usariaconst response = await fetch(...)
..success()
só é chamado se o seu servidor web responder com um cabeçalho HTTP 200 OK - basicamente quando está tudo bem.Os callbacks anexados a done () serão disparados quando o adiado for resolvido. Os callbacks anexados a fail () serão disparados quando o adiado for rejeitado.
fonte
success
é o retorno de chamada que é invocado quando a solicitação é bem-sucedida e faz parte da$.ajax
chamada.done
é na verdade parte dojqXHR
objeto retornado por$.ajax()
e substituisuccess
no jQuery 1.8.fonte