sexta-feira, 29 de novembro de 2013

JAVASCRIPT - Uso AJAX e JSON

Uso em Ajax


                                                      


AJAX (Asynchronous Javascript and XML1.,  "Javascript Assíncrono e XML") é um grupo de técnicas de desenvolvimento web interligadas usado no lado do cliente para criar aplicações web assíncronas.

Com Ajax, aplicações web podem enviar e recuperar dados de um servidor de forma assíncrona (em segundo plano), sem interferir com a exibição e comportamento da página. Os dados podem ser recuperados usando o objeto XMLHttpRequest2.

Apesar do nome, não é necessário o uso de XML (JSON é frequentemente usado em seu lugar) e as requisições não precisam ser assíncronas.

Ajax não é uma tecnologia única, mas um grupo de tecnologias. HTML e CSS podem ser usados em combinação para marcação de hipertexto e informações de estilo. 

O DOM3 é acessado com JavaScript para exibir de forma dinâmica, e permitir que o usuário interaja com a informação apresentada. 

JavaScript e o objeto XMLHttpRequest fornecer um método para troca de dados de forma assíncrona entre o navegador e o servidor para evitar recargas de página inteira.

JSON é frequentemente usado em técnicas de Ajax. Ajax é um termo para a capacidade de uma página na internet para solicitar novos dados depois de ter carregado no navegador da web, geralmente em resposta a ações do usuário na página exibida. 

Como parte do modelo Ajax, os novos dados são geralmente incorporados no ecrã interface de usuário dinâmica que ele chega de volta a partir do servidor .

 Um exemplo disso na prática pode ser que enquanto o usuário está digitando em uma caixa de pesquisa , o código do lado do cliente envia o que escreveu até agora a um servidor que responde com uma lista de possíveis termos de busca completo de seu banco de dados.

Estes podem ser exibidas em uma lista drop-down abaixo da pesquisa, de modo que o usuário pode parar de digitar e selecionar uma seqüência de pesquisa completa e comumente usado diretamente. 

Quando foi originalmente descrita em meados dos anos 2000 , o Ajax comumente usado XML como formato de intercâmbio de dados, mas muitos desenvolvedores também têm usado JSON para passar atualizações Ajax entre o servidor eo cliente.

O código JavaScript a seguir é um exemplo de um cliente usando XMLHttpRequest para solicitar dados em formato JSON de um servidor . ( A programação do lado do servidor é omitida, e deve ser configurada para responder a solicitações de URL com uma string JSON-formatada. )


var my_JSON_object;
var http_request = new XMLHttpRequest();
http_request.open("GET", url, true);
http_request.onreadystatechange = function () {
    var done = 4, ok = 200;
    if (http_request.readyState == done && http_request.status == ok) {
        my_JSON_object = JSON.parse('''http_request.responseText''');
    }
};
http_request.send(null);


JavaScript eval ()

Porque a maioria de texto JSON formatado também é código sintático JavaScript, uma maneira fácil para um programa JavaScript para analisar dados de JSON- formatado é usar a função built-in JavaScript eval (), que foi desenvolvida para avaliar expressões JavaScript .Ao invés de usar um analisador específico do JSON, o interpretador JavaScript em si é usado para executar os dados JSON produzindo objetos JavaScript nativas.

Há, no entanto , alguns caracteres Unicode que são válidos em strings JSON mas inválido em JavaScript, usar 'escape sequence4' adicional pode ser necessária em alguns casos.


A menos que sejam tomadas precauções para validar os dados em primeiro lugar, a técnica eval está sujeito a vulnerabilidades de segurança quando os dados e todo o ambiente JavaScript não estão sob o controle de uma única fonte confiável.

Por exemplo, se os dados em si não é confiável, ele está sujeito a ataques de injeção de código malicioso JavaScript. Essas quebras de confiança também pode criar vulnerabilidades para roubo de dados, autenticação de falsificação, e outro mau uso potencial de dados e recursos. As expressões regulares podem ser usados ​​para validar os dados antes de chamar eval (). A RFC que define JSON (RFC 4627) sugere a utilização do seguinte código para validar JSON antes de validá-lo (a variável 'texto' é a entrada JSON):

var my_JSON_object = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
    text.replace(/"(\\.|[^"\\])*"/g, ''))) && eval('(' + text + ')');

Uma nova função, JSON.parse (), foi, assim, desenvolveu-se como uma alternativa mais segura para eval. Ele destina-se especificamente para processar dados JSON e não JavaScript. Ele foi originalmente planejado para inclusão na quarta edição do padrão ECMAScript, [25] mas isso não ocorreu. Foi adicionado primeiro à quinta edição, [26] e agora é suportado pelos principais navegadores listados abaixo. Para os mais velhos, uma biblioteca JavaScript compatível está disponível em JSON.org.


XML (eXtensible Markup Language)é usado para gerar linguagens de marcação para necessidades especiais.
                                                                 Ficheiro:XML-pt.svg

XML tem sido usada para descrever dados estruturados e para serializar objetos. Existem vários protocolos baseados em XML para representar o mesmo tipo de estrutura de dados como JSON para o mesmo tipo de efeitos de intercâmbio de dados. 
Quando os dados são codificados em XML, o resultado é tipicamente maior do que uma codificação equivalente em JSON, principalmente por causa das marcas de fechamento de XML. No entanto, se os dados são compactados usando um algoritmo como gzip, há pouca diferença porque a compressão é boa em economia de espaço quando um padrão se repete.

Quando usado sem um esquema XML, valores XML não tem um tipo de dados específico.

XMLHttpRequest (XHR)2.  É uma API disponível para linguagens de script do navegador da Web, usada para enviar solicitações HTTP ou HTTPS para um servidor web e carregar os dados de resposta do servidor de volta para o script. Os dados são também comumente recebido como JSON, HTML ou como texto simples.

Dados da resposta pode ser utilizada para alterar o documento actual na janela de navegador sem carregar uma nova página.

 Os dados de resposta também pode ser avaliada pelo script do lado do cliente. Por exemplo, se ele foi formatado como JSON pelo servidor web, ele pode ser convertido em um objeto de dados do lado do cliente para uso posterior.

XMLHttpRequest tem um papel importante na técnica de desenvolvimento web Ajax. Atualmente é usado por muitos sites para implementar aplicações web ágeis e dinâmicas.

XMLHttpRequest está sujeito à política de mesma-origem do navegador: por razões de segurança, os pedidos só terão sucesso se forem feitas para o mesmo servidor que serviu a página web de origem.

/*
   Provide the XMLHttpRequest constructor for Internet Explorer 5.x-6.x:
   Other browsers (including Internet Explorer 7.x-9.x) do not redefine
   XMLHttpRequest if it already exists.
 
   This example is based on findings at:
   http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
*/
if (typeof XMLHttpRequest === "undefined") {
  XMLHttpRequest = function () {
    try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
    catch (e) {}
    try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
    catch (e) {}
    try { return new ActiveXObject("Microsoft.XMLHTTP"); }
    catch (e) {}
    throw new Error("This browser does not support XMLHttpRequest.");
  };
}

O Document Object Model (DOM) 3é uma convenção multi-plataforma e independente de linguagem para representar e interagir com objetos em HTML, XHTML e documentos XML.  Objetos na árvore DOM podem ser dirigidos e manipulados usando métodos nos objetos . A interface pública de um DOM é especificado em sua interface de programação de aplicativos (API).

Escape sequence4  seqüência de escape é uma série de caracteres utilizados para alterar o estado de computadores e seus dispositivos periféricos conectados. Estes são também conhecidos como as sequências de controle, que refletem a sua utilização no controle do dispositivo. 

Algumas seqüências de controle são caracteres especiais que sempre têm o mesmo significado. Seqüências de escape usar um caractere de escape para mudar o significado dos caracteres que o seguem, o que significa que os caracteres podem ser interpretados como um comando a ser executado ao invés de dados.

Seqüências de escape são comumente usados ​​quando um computador e um periférico têm apenas um único canal através do qual se envia e retorna informações. Se o dispositivo em questão é "burro" e só pode fazer uma coisa com a informação a ser enviada a ele (por exemplo, imprimi-lo), então não há necessidade de uma seqüência de escape. No entanto a maioria dos dispositivos têm mais de um recurso, e, portanto, precisa de alguma forma de distinguir a informação que está a ser tratada como dados de informação que está a ser tratado como comandos.


Nenhum comentário:

Postar um comentário