2009-08-07 15 views
15

Quando deve essere utilizzato il metodo di caricamento (url, dati, callback) rispetto a jQuery.get (url, dati, callback, tipo) quando si effettuano chiamate AJAX con jQuery?AJAX jQuery.load versus jQuery.get

+1

per ulteriori informazioni: http://stackoverflow.com/questions/3870086/difference-between-ajax-and-get-and-load – cregox

risposta

20

Prima di tutto queste due funzioni sono completamente diverse. La funzione 'carica' funziona con selettori e carica il risultato della chiamata AJAX all'interno del gruppo selezionato e la richiamata serve a gestire l'evento "incompleto" della chiamata; mentre la funzione $ .get è più generica e il callback gestisce la risposta positiva della chiamata AJAX, dove sei libero di definire qualsiasi comportamento tu voglia. E puoi trovare tutte queste informazioni solo guardando la documentazione e le specifiche del framework jQuery.

Here è possibile trovare una buona documentazione.

8

carico inietta i dati direttamente nel DOM. Se non hai bisogno di questo comportamento, usa get.

-1

dovrebbe solo guardare il codice jQuery, in quanto è disponibile per la revisione. comunque tutte le chiamate devono raggiungere lo stesso metodo ma rispondere in modi diversi a seconda delle necessità

15

@ La risposta di Artem sembra essere assente dal fatto che lo load è una funzione più generica di get. In base allo jQuery API docs, il carico utilizza get o post a seconda dei dati. Citando qui:

Metodo richiesta

Il metodo POST viene usato se i dati viene fornito come un oggetto; in caso contrario, GET è assunto.

Quindi, ai fini di ottenere il contenuto HTML parziale dal server di & inserendolo nel DOM, load è un metodo migliore rispetto al metodo get, come lo sviluppatore non ha bisogno di preoccuparsi di gestire i dati enorme & vari intermedi passaggi che la funzione di caricamento fa prima di recuperare & prima di inserire il contenuto.

Per esempio, se è necessario caricare contenuto parziale di una pagina, è possibile utilizzare la seguente espressione: $('#result').load('ajax/test.html #container');

Questo recupera il contenuto del ajax/test.html, ma poi jQuery analizza il restituito documento per trovare l'elemento con un ID di container. Questo elemento, insieme al suo contenuto, viene inserito nell'elemento con un ID di result e il resto del documento recuperato viene scartato.

Una cosa da tenere a mente è che, quando si solo bisogno di un evitano GET richiesta di fornire un oggetto al parametro i dati & invece utilizzare il metodo $.param per ottenere una forma serializzato dei parametri di richiesta.

+0

Piuttosto, suggerirei di utilizzare il parametro data per mantenere separati struttura e dati. Per le query semplici usa concatenazione di stringhe ('id = '+ id') e per cose più complesse usa un oggetto e il metodo param (' $ .param (oggetto) 'o' $ .param ({id: id, foo: bar }) ') – Deebster

+0

@Deebster Mi sono assunto casi più semplici. Capisco che $ .param è migliore per scenari complessi.Ho modificato la risposta. Grazie. – Sujay