2011-11-13 11 views
7

Estoy tratando de entender cuáles son las diferencias entre la función $.getScript en jQuery y $.get.

De acuerdo con la documentación: http://api.jquery.com/jQuery.get/ y http://api.jquery.com/jQuery.getScript/

Me dio la sensación de que con el $.getScript puede enviar datos al servidor (al igual que con la función $.get) pero no se puede obtener datos de el servidor (que puede con la función $.get). Pero se muestra en la documentación de $.getScript, algunas líneas a continuación en el primer ejemplo, que también puede obtener datos con la línea console.log(data); //data returned.

¿Cuál es la diferencia? ¿Es que con $.getScript puede llamar solo scripts js y con $.get puede llamar a cualquier archivo? ¿Cuáles son las restricciones/beneficios de usar una función en lugar de la otra?

Respuesta

18

Ambos son accesos directos a la llamada a la función ajax. jQuery.get es equivalente a:

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

Mientras jQuery.getScript es equivalente a:

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

Es fácil ver que jQuery.get puede obtener cualquier tipo de respuesta (guión, XML, JSON, script o HTML - por defecto html), y getScript está limitado a "script".

En resumen, getScript se utiliza para ejecutar dinámicamente JavaScript externo, y get es función de uso general que generalmente se usa para recibir datos de acuerdo con params pasamos. Sin embargo, también es posible pasar los parámetros en getScript (en URL) pero no será común, porque la mayoría de los scripts son estáticos. Finalmente, la devolución de llamada en getScript se puede utilizar para ejecutar sentencias finales después de que se ejecutó nuestra secuencia de comandos (por ejemplo, utilice alguna función de biblioteca después de cargarla).

1

getScript está diseñado para permitirle cargar un script. Cuando anexa una secuencia de comandos dentro de una secuencia de comandos, cargará la secuencia de comandos de forma asíncrona. Si usa getScript, puede establecer una función de devolución de llamada para cuando la otra secuencia de comandos se haya completado.

$.get es una solicitud básica de AJAX, puede hacer lo que quiera con ella. Está completamente por ti.

Cuestiones relacionadas