..


Links Patrocinados

O que há de novo no jQuery 1,5

Artigo escrito por Riccardo Brambilla
Página 1 de 3

É algumas semanas fora da versão 1.5 do nosso amado jQuery, seguido pela volta do correio 1.5.1, basicamente, uma versão de bug-fixo do primeiro.

Meu primeiro instinto me levou a pensar que você poderia esperar algum tempo a produzir esta nova versão, mesmo porque não o ramo 1.4.x já realizados sobre o seu trabalho muito bem, para não mencionar que permanecem o tempo um pouco mais sobre versão dá aos usuários uma sensação de estabilidade e segurança.

Mas quando eu li o que foi alterado, e acrescentou que eu mudei de idéia imediatamente.

As mudanças na versão 1.5 são substanciais, mas não tanto em recursos que são expostos a quanto trabalho foi feito nos bastidores, especialmente na forma Ajax desenvolvedores, cujas alterações não hesite em chamar de época, não tanto em geral (o que outros frameworks já usam Aqui nós apresentamos agora), mas para jQuery.

Vemos um pouco mais especificamente o que foi feito.

Revolução (e refactoring) do formulário Ajax

$ Extensão. Ajax ()

A equipe do quadro de desenvolvimento reescreveu a maior parte do Ajax API oferece três maneiras de estender a funcionalidade de US $ Ajax ():. Prefilters o, os conversores e transportes

O Prefilters

A pré-filtro é uma função callback chamado antes do pedido ajax é realmente enviado, e, conforme explicado na documentação, antes de qualquer opções de tratamento em US $. Ajax () em si.

O pré-filtro é gravado usando $ AjaxPrefilter ().:

 



 $. AjaxPrefilter função ((opções, originalOptions, jqXHR)

 

Vou explicar o que é um jqXHR, Pense nisso como um invólucro para agora enriquecido com um XMLHttpRequest.

O exemplo mais interessante na documentação explica a possível utilização de pré-filtros para modificar uma opção existente






 $. AjaxPrefilter função ((options) {



  



 if (options.crossDomain) {



    



 options.url = "http://miodominio.it/proxy/" + encodeURIComponent (options.url);



    



 options.crossDomain = false;



  



 }







 });



Dizer que, se a opção for crossDomain a chamada é intermediada por proxy para o http://mydomain.net/proxy/ URL.

Os conversores

Um conversor é uma função de callback chamada quando o tipo de dados recebido é diferente do esperado.

E 'possível usar $ AjaxSetup () para registrá-lo globalmente.:






 $. AjaxSetup ({



  



 Conversores: {



    



 "Texto Miodatatype": function (textValue) {



      



 if (válido (textValue)) {



        



 / / Aqui a lógica personalizada para analisar!



        



 miodatatypeValue retorno;



      



 Else {}



        



 / / Notifica um erro de interpretação



        



 lançar uma exceção;



      



 }



    



 }



  



 }







 });



Ou ligue diretamente em linha para cada chamada que requer que:





 $. Ajax (url, {



  



 dataType: "texto xml miodatatype"



  



 Conversores: {



    



 "Texto XML": function (xmlValue) {



      



 / / Parse a lógica aqui!



      



 textValue retorno;



    



 }



  



 }







 });



A razão mais sentido usar um conversor é que ele fornece uma maneira de definir o seu próprio datatypes então usado como um tipo de retorno, o primeiro exemplo, podemos solicitar a miodatatype este tipo:






 $. Ajax (url, {



  



 dataType: "miodatatype"







 });



Nota: O tipo de dados deve ser definido como seqüências de letras minúsculas.

Dos Transportes

Se houvesse conversores bastante a pré-filtros e para moldar nossas solicitações ajax, os objetos são feitos os transportes disponíveis, que a documentação define último recurso (o que se traduziria como "não use" ou com "se você se sentir compelido a usá-los, talvez você deve refletir sobre lógica que você está usando ").

No entanto, o transporta fornecer duas funções: enviar e abortar e devem ser registradas utilizando AjaxTransport $ ()..

Aqui está o exemplo básico fornecido na documentação:






 $. AjaxTransport função ((opções, originalOptions, jqXHR) {



  



 if (/ * transportCanHandleRequest * /) {



    



 {Return



      



 envie: function (cabeçalhos, completeCallback) {



        



 / * Enviar * queue /



      



 },



      



 abortar: function () {



        



 / * Abort código * /



      



 }



    



 };



  



 }







 });



ea descrição dos parâmetros que traduzem para a sua conveniência:

  1. opções são as opções do pedido
  2. originalOptions opções são passados ​​para o método, assim como Ajax, não modiifcate definido por padrão e sem ajaxSettings
  3. jqXHR jqXHR é o objecto do pedido
  4. cabeçalhos e um valor de chave de mapa / do pedido que pode ser transmitida se o transporte suporta
  5. completeCallback é a função que notifica a conclusão do pedido ajax.

a estrutura típica de um completeCallback é a seguinte:

 



 função (status, statusText, respostas, headers) {}

 
onde:
  1. estado é o código de status HTTP da resposta, o clássico 200, 404 ...
  2. statusText é a descrição da resposta
  3. respostas é um mapa opcional que define o valor datatype / que contém a resposta em todos os formatos aceitos pelo transporte: por exemplo, uma resposta em texto simples: {text: textData}
  4. cabeçalhos é uma string opcional que contém a resposta fornecida pelo XMLHttpRequest.getAllResponseHeaders Headers ()

Nós descrevemos o que foi adicionado para aumentar a flexibilidade do ajax módulo, mas para o uso comum Acho comentário muito interessante sobre a introdução do diferido, mas antes de fazê-lo jqXHR definir o novo objeto que é retornado das chamadas ajax.

jqXHR

jqXHR família é um superconjunto do objeto XMLHTTPRequest que implementa a interface de Promise, fornecendo todos os métodos, propriedades e comportamentos definidos por uma promessa:

Definição: Uma promessa é uma exibição somente leitura do resultado de uma tarefa e representa o valor retornado pela conclusão da transação.

Para mais informações veja aqui .

Na mesma categoria ...
E-Learning
CSS (Curso) CSS (Curso)
Web Design e Acessibilidade de acordo com a W3C CSS e XHTML. A partir de 29 €.
HTML (Curso) HTML (Curso)
A linguagem de marcação para a Web a partir de 29 €.
Javascript (Curso) Javascript (Curso)
Completo guia para client-side scripting. A partir de 39 €.
Links Patrocinados