#javascript #ajax #jquery
#javascript #ajax #jquery
Вопрос:
Я пытаюсь понять, в чем различия между $.getScript
функцией в jQuery и $.get
.
Согласно документации:http://api.jquery.com/jQuery.get / и http://api.jquery.com/jQuery.getScript /
У меня возникло ощущение, что с помощью $.getScript
вы можете отправлять данные на сервер (как с помощью $.get
функции), но вы не можете получать данные с сервера (что вы можете с помощью $.get
функции). Но в документации $.getScript
, несколькими строками ниже в первом примере, показано, что вы также можете получить данные с помощью строки console.log(data); //data returned
.
Итак, в чем различия? Получается ли так, что с помощью $.getScript
вы можете вызывать только js-скрипты, а с помощью $.get
вы можете вызывать любой файл? Каковы ограничения / преимущества использования одной функции вместо другой?
Ответ №1:
Оба они являются ярлыками для ajax
вызова функции. jQuery.get
эквивалентно:
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
В то время как jQuery.getScript
эквивалентно:
$.ajax({
url: url,
dataType: "script",
success: success
});
Легко видеть, что jQuery.get
можно получить любой тип ответа (script, xml, json, script или html — по умолчанию html) и getScript
ограничивается «script».
Короче говоря, getScript
используется для динамического выполнения внешнего JavaScript и get
является функцией общего назначения, обычно используемой для получения данных в соответствии с переданными параметрами. Тем не менее, также возможно передавать параметры в getScript
(в URL), но это будет не часто, потому что большинство скриптов статичны. Наконец, обратный вызов в getScript
может быть использован для выполнения заключительных инструкций после выполнения нашего скрипта (например, использовать какую-либо библиотечную функцию после ее загрузки).
Ответ №2:
getScript
предназначен для того, чтобы позволить вам загружать скрипт. Когда вы добавляете скрипт изнутри скрипта, он загружает скрипт асинхронно. Если вы используете getScript
, вы можете установить функцию обратного вызова, когда другой скрипт завершит выполнение.
$.get
это базовый ajax-запрос, вы можете делать с ним все, что хотите. Это полностью зависит от вас.