2011-11-13 16 views
7

Sto cercando di capire quali sono le differenze tra la funzione $.getScript in jQuery e lo $.get.

Secondo la documentazione: http://api.jquery.com/jQuery.get/ e http://api.jquery.com/jQuery.getScript/

mi ha dato la sensazione che con il $.getScript è possibile inviare i dati al server (come con la funzione $.get), ma non è possibile ottenere i dati da il server (che è possibile con la funzione $.get). Ma mostra nella documentazione di $.getScript, alcune righe sotto nel primo esempio, che si può ottenere anche i dati con la linea console.log(data); //data returned.

Allora, qual è la differenza? È così che con $.getScript puoi chiamare solo script js e con $.get puoi chiamare qualunque file? Quali sono le restrizioni/i vantaggi dell'utilizzo di una funzione invece dell'altra?

risposta

18

Entrambi questi sono scorciatoie per ajax chiamata di funzione. jQuery.get è equivalente a:

$.ajax({ 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

Mentre jQuery.getScript è equivalente a:

$.ajax({ 
    url: url, 
    dataType: "script", 
    success: success 
}); 

E 'facile vedere che jQuery.get può ottenere qualsiasi tipo di risposta (sceneggiatura, xml, json, uno script o HTML - per impostazione predefinita html) e getScript è limitato a "script".

In breve, getScript viene utilizzato per eseguire dinamicamente JavaScript esterno, e get è funzione general purpose solitamente utilizzata per ricevere dati secondo params passato. Tuttavia, è anche possibile passare params in getScript (in URL), ma che sarà non è comune, perché la maggior parte degli script sono statici. Infine, la callback in getScript può essere utilizzata per eseguire le istruzioni finali dopo l'esecuzione del nostro script (ad esempio, utilizzare una funzione di libreria dopo averla caricata).

1

getScript è stato progettato per consentire di caricare uno script. Quando si aggiunge uno script all'interno di uno script, verrà caricato lo script in modo asincrono. Se si utilizza getScript, è possibile impostare una funzione di callback per quando l'altro script ha completato l'esecuzione.

$.get è una richiesta AJAX di base, si può fare quello che vuoi con esso. È completamente su di te.