2009-05-17 16 views
10

Sono nuovo di AJAX, ma come una panoramica mi piacerebbe sapere quali formati è possibile caricare e scaricare. È limitato a JSON o XML o puoi persino inviare tipi binari come MP3 o HTML UTF-8. E infine, hai il pieno controllo sui dati, byte per byte in qualcosa come un array di byte, o è solo una stringa inviata/ricevuta.Quali formati di dati possono trasferire AJAX?

+0

Parli di un ambiente diverso da un browser? –

+0

No. Browser standard. –

risposta

4

Se stiamo parlando di ajax stiamo parlando di javascript? E su XMLHTTPRequest?

XMLHttpRequest che è solo una richiesta http può trasferire tutto. Ma non ci sono array di byte in javascript. Solo stringhe, numeri e così via. Ogni cosa che ottieni da una chiamata ajax è una porzione di testo (responseText). Questo potrebbe essere analizzato in XML (che ti dà reponseXML). Le codifiche speciali dovrebbero essere più una questione di trasporto HTTP.

Il materiale binario non è dipendente da una jax ma dipende da javascript. Ci sono alcune strane codifiche per le stringhe che forniscono dati di byte all'interno di javascript (specialmente per le immagini) ma non è una soluzione generale.

HTML non è un problema e questo è il caso di utilizzo più importante. Da questo tipo di richiesta si ottiene una stringa HTML consegnata e che viene aggiunta a qualche nodo nel DOM per innerHTML che analizza l'HTML.

1

È possibile trasferire qualsiasi tipo di dati o stringhe o byte

+0

Come si producono/consumano dati binari in javascript? –

+0

Forse puoi usare String.charCodeAt (index) per ottenere il codice ASCII (credo) di un particolare char all'interno di una stringa. –

1

È possibile inviare qualcosa che ti piace, il problema potrebbe essere come gestire la cosa una volta che si ottiene;)

HTML standard è probabilmente il più tipo comune di contenuto di ajax in uso - puoi scegliere anche la codifica dei caratteri, anche se è sempre meglio attenersi a un tipo di codifica.

0

È possibile spostare tutto ciò che può essere inviato su HTTP. Esistono restrizioni sulla chiamata effettuata allo stesso dominio della pagina caricata da, ma non sul contenuto del trasferimento. Puoi eseguire anche transazioni GET o POST.

2

Poiché i dati vengono trasportati tramite HTTP, è necessario assicurarsi di utilizzare un tipo di codifica. Uno dei più popolari è la codifica base64. Per ulteriori informazioni: http://www.webtoolkit.info/javascript-base64.html

La metodologia è codificare in base64 i dati che si desidera inviare e quindi decodificare in base64 i dati sul server (o sul client) e utilizzare i dati originali come desiderato.

1

AJAX significa semplicemente che stai trasferendo i dati in modo asincrono su HTTP con una chiamata JavaScript. Quindi il tuo script fa una richiesta HTTP "normale" usando l'oggetto XmlHttpRequest(). Tuttavia, come suggerisce il nome, è in realtà adatto solo per i formati di dati basati su testo, poiché in genere si desidera eseguire un'azione sul lato client con i dati recuperati dal server (non sempre però, a volte le persone semplicemente inviano XmlHttpRequests solo a aggiornare qualcosa sul server).

Su una nota a margine, non ho mai visto un'applicazione in cui l'invio di dati binari sarebbe stato comunque appropriato.

Molto spesso, le persone scelgono di inviare dati al server con POST o GET (che è fondamentalmente un metodo per trasferire coppie nome-valore inerenti a HTTP). Per inviare dati più complessi, ad esempio strutture gerarchiche, devono essere codificati in qualche modo.I documenti XML possono essere resi nativamente per JavaScript, inviati al server e analizzati in qualsiasi tipo di dati necessari. Ma dal momento che XML può essere un po 'un problema, molti sviluppatori usano invece i dati codificati JSON perché è facile da generare e facile da analizzare.

Ciò che il server invia è altrettanto arbitrario. Di solito, si specifica una funzione di callback nel proprio Javascript che gestisce i dati in entrata. Ancora una volta, le scelte popolari sono XML e JSON, che si analizzano facilmente in un oggetto documento o in una struttura di array rispettivamente. Potresti anche inviare un semplice testo o qualche altra confezione, ma ricorda che dovrai occuparti di estrarre da te i dati utilizzabili. A volte, può anche essere utile inviare frammenti HTML effettivi al client per aggiornare direttamente qualcosa sulla pagina.

Per cominciare, suggerisco di dare un'occhiata a JQuery. Si tratta di un framework molto leggero che astrae molti aspetti negativi della compatibilità e consente di scrivere le richieste AJAX molto bene.

Problemi correlati