O jQuery 1.5 adiciona "objetos adiados". O que são e o que exatamente eles fazem?
fonte
O jQuery 1.5 adiciona "objetos adiados". O que são e o que exatamente eles fazem?
Objeto diferido
No jQuery 1.5, o objeto Adiado fornece uma maneira de registrar vários retornos de chamada em filas de retorno de chamada autogerenciadas, chamar filas de retorno de chamada conforme apropriado e retransmitir o estado de sucesso ou falha de qualquer função síncrona ou assíncrona.
Métodos diferidos:
Adiado em ação:
$.get("test.php").done(
function(){ alert("$.get succeeded"); }
);
$.get("test.php")
.done(function(){ alert("$.get succeeded"); })
.fail(function(){ alert("$.get failed!"); });
E parece que os retornos de chamada do método ajax () existentes podem ser encadeados em vez de declarados nas configurações:
var jqxhr = $.ajax({ url: "example.php" })
.success(function() { alert("success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
Exemplo de trabalho da postagem no blog de Eric Hynds : http://jsfiddle.net/ehynds/Mrqf8/
jqXHR
A partir do jQuery 1.5, o método $ .ajax () retorna o objeto jXHR, que é um superconjunto do objeto XMLHTTPRequest. Para obter mais informações, consulte a seção jXHR da entrada $ .ajax
A partir do JQUERY 1.5 LANÇADO :
OBJETOS DIFERIDOS
Juntamente com a reescrita do módulo Ajax, um novo recurso foi introduzido, que também foi disponibilizado ao público: Objetos Adiados . Essa API permite trabalhar com valores de retorno que podem não estar presentes imediatamente (como o resultado do retorno de uma solicitação Ajax assíncrona). Além disso, permite anexar vários manipuladores de eventos (algo que antes não era possível na API do Ajax).
Além disso, você pode criar seus próprios objetos adiados usando o jQuery.Deferred exposto. Mais informações sobre essa API podem ser encontradas na documentação do objeto adiado.
Eric Hynds escreveu um bom tutorial sobre o uso de adiados no jQuery 1.5 .
Em vez de dizer o que faz, mostrarei o que faz e explicarei.
Uma cópia da fonte relacionada do jQuery 1.5 com anotações explicando o que está fazendo. Eu acho que os comentários estão corretos.
Isso pode ser benéfico
fonte
Problem solved
. Btw que é a fonte 1.5beta Eu acho que há algumas mudanças em 1.6Corrija-me se estiver errado, mas recentemente clicou para mim que é essencialmente um Executor de Tarefas Assíncronas. A promessa é um contrato de resultado, garantindo que você receba ... alguma coisa, mas sem garantia de quando a receberá.
fonte
Enquanto trabalhamos em Javascript, encontramos uma situação em que as chamadas de função são assíncronas. Esse é o fluxo da função de chamada (digamos X) não espera a função assíncrona chamada (digamos Y). Exemplo típico é quando fazemos chamadas para um servidor para buscar alguns dados de um banco de dados ou de uma página HTML. Se essas chamadas não forem assíncronas, a interface do usuário ficará bloqueada aguardando a resposta do servidor. Essa natureza assíncrona leva a um problema quando você deseja executar as coisas em uma ordem, por exemplo, deseja imprimir algo depois que Y (assíncrono) termina a execução ou busca de dados. Aqui, o jQuery nos fornece Objeto Defferido. Basicamente, o jQuery cuidou de todo o código padrão que normalmente escrevemos para resolver essa situação. Aqui está um exemplo simples:
Você pode escrever sua própria função adiada (assíncrona)
Espero que isso tenha ajudado.
fonte