2012-03-26 25 views
9

Ho bisogno di recuperare una pagina semplice e utilizzare i dati che restituisce. C'è qualche differenza tra $.post() e $.get() dovrei usare uno sull'altro?

Non ho intenzione di inviare alcun dato con la richiesta.

+0

Ecco un breve riassunto dei più utilizzati metodi di jQuery AJAX: http://www.catchmyfame.com/2012/03/05/whats-the- best-jquery-method-for-retrieving-ajax-data/ – j08691

risposta

12

Se si desidera recuperare il contenuto da un documento html, utilizzare invece $.load().

È anche possibile recuperare le informazioni parziali da quel documento, fornendo un selettore addizionale:

$('#result').load('ajax/test.html'); 
$('#result').load('ajax/test.html #justThisContainerPlease'); 

vedere http://api.jquery.com/load/


Per rispondere alla tua domanda, più in generale, la sua non grande differenza se sei utilizzando una richiesta POST o GET su un server, dipende dalla quantità di dati che è necessario inviare. In genere, una richiesta GET è limitata a 2083 (perché IE limita la stringa di query). Quindi se hai molti dati da inviare, dovresti utilizzare una richiesta POST.

Tecnicamente, una richiesta GET dovrebbe essere leggermente più veloce. Perché internamente viene inviato solo un pacchetto invece di almeno due (uno per l'intestazione e uno per il corpo della trasmissione). Ma questo è davvero l'ottimizzazione delle prestazioni.

+0

+1 e accettato a causa dell'ultimo paragrafo. – qwertymk

+0

leggi http://thenetworkguy.typepad.com/nau/2008/08/http-post-haste.html per elaborare l'ultimo paragrafo – mbx

0

Andare per $.get() in quanto non è necessario pubblicare alcun dato o $.load() se si desidera visualizzare la pagina nel browser (si desidera aggiornare una parte della pagina).

+0

C'è qualche ragione per usare $ .get su $ .post? – qwertymk

+0

È più di semantica: POST significa "aggiorna una risorsa sul server", GET significa "recupera la risorsa dal server". –

2

Ecco un bel article che spiega le differenze tra un POST HTTP e un GET HTTP. Io stesso preferisco usare $.ajax(); e modificarlo di conseguenza.

1

Se non sei l'invio dei dati, quindi in realtà si dovrebbe usare $.load();

$.get(); e $.post() sono in genere per la presentazione di dati a un server, in modo da non li hanno bisogno in questo contesto. Esistono grandi differenze tra i dati POST e GET, dovresti dedicare un po 'di tempo allo read up on them.

0

La principale differenza tra loro è che con POST si passa una raccolta di dati e con GET si passa dati nell'URL. Se stai passando molti dati, ti suggerisco di postare. Se stai solo chiamando un URL per una risposta, usa get.

Per una comprensione completa del checkout della documentazione jQuery di ciascuno.

GET: http://api.jquery.com/jQuery.get/

POST: http://api.jquery.com/jQuery.post/