Pergunta

Eu sou novo para AJAX, mas como uma visão geral Eu gostaria de saber o que formata você pode fazer o upload e download. É limitado a JSON ou XML ou você pode até mesmo enviar tipos binários como MP3 ou UTF-8 HTML. E, finalmente, você tem total controle sobre os dados, byte a byte em algo como uma matriz de bytes, ou é apenas uma seqüência de enviado / recebido.

Foi útil?

Solução

Se nós estamos falando sobre ajax estamos falando de javascript? E sobre XMLHTTPRequest?

O XMLHttpRequest que é apenas uma solicitação HTTP pode transferir tudo. Mas não há nenhuma matriz de bytes em javascript. Apenas strings, números e tal. Cada coisa que você começa a partir de uma chamada ajax é um pedaço de texto (responseText). Isso pode ser analisado em XML (o que lhe dá reponseXML). codificações especiais deve ser mais uma questão do transporte HTTP.

O material binário não é ajax dependente, mas dependente javascript. Há algumas codificações estranhas para cordas para entregar dados de byte dentro em javascript (especialmente para imagens), mas não é uma solução geral.

HTML não é um problema e que é o caso de uso mais proeminente. A partir deste tipo de pedido você recebe uma string HTML entregue e que é adicionado a alguns nó na DOM por innerHTML que analisa o código HTML.

Outras dicas

Uma vez que os dados são transportados via HTTP você terá que certificar-se de que você use algum tipo de codificação. Um dos mais populares é a codificação base64. Você pode encontrar mais informações em: http://www.webtoolkit.info/javascript-base64.html

A metodologia é a base64 codificar os dados que você gostaria de enviar e, em seguida, base64-decodificar os dados no servidor (ou cliente) e usar os dados originais como pretendido.

Você pode transferir qualquer tipo de dados string ou bytes

Você pode enviar qualquer coisa que você gosta, o problema pode ser a forma de lidar com isso uma vez que você obtê-lo;)

padrão HTML é provavelmente o tipo mais comum de ajax conteúdo em uso lá fora -. Você pode escolher codificação de caracteres também, embora seja sempre melhor ficar com um tipo de codificação

AJAX simplesmente significa que você está transferindo dados de forma assíncrona através de HTTP com uma chamada de JavaScript. Portanto, o seu roteiro faz uma "normal" HTTP pedido usando o objeto XMLHttpRequest (). No entanto, como o nome indica, é realmente apenas adequado para formatos de dados baseados em texto, pois você geralmente deseja realizar alguma ação no lado do cliente com os dados que você tem de volta do servidor (nem sempre, porém, às vezes as pessoas simplesmente enviar XMLHttpRequests apenas para atualização algo no servidor).

Em uma nota lateral, eu nunca vi uma aplicação onde o envio de dados binários teria sido de qualquer maneira apropriada.

Na maioria das vezes, as pessoas escolhem para enviar dados para o servidor com POST ou GET (que é basicamente um método para transferência de pares nome-valor inerentes ao HTTP). Para o envio de dados mais complexos, por exemplo, estruturas hierárquicas, eles precisam ser codificado de alguma forma. documentos XML pode ser feita de forma nativa por JavaScript, enviada para o servidor e se analisado em tipos todos os dados necessários. Mas desde que XML pode ser um pouco de dor, muitas devs usar JSON dados codificados em vez porque é fácil para gerar e fácil de analisar.

O que o servidor envia de volta é tão arbitrária. Normalmente, você especifica uma função de retorno em sua Javascript que lida com os dados de entrada. Mais uma vez, as escolhas populares são XML e JSON, eles analisar facilmente em um objeto de documento ou um estrutura de array respectivamente. Você também pode enviar texto simples ou alguma outra embalagem, mas lembre-se que você então tem que cuidar de extrair os dados utilizáveis ??a partir dele mesmo. Às vezes, também pode ser benéfico para enviar fragmentos HTML real para o cliente para atualizar algo na página diretamente.

Para começar, eu sugiro que você dê uma olhada no JQuery. É um quadro muito leve que abstrai muitas das coisas compatibilidade mal e permite que você escreva AJAX pede muito bem.

Você pode mover qualquer coisa que pode ser enviado através de HTTP. Há restrições sobre a chamada que está sendo feito para o mesmo domínio que a página carregado a partir, mas não sobre o conteúdo da transferência. Você pode fazer um GET ou POST transações também.

Há um Digg entrada do Blog intitulado DUI.Stream e MXHR que mostra que eles chamam de "multipart XMLHttpRequests". É alfa código agora, mas há um demo que manipula as imagens .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top