Разница между $.getScript() и $.get()

#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-запрос, вы можете делать с ним все, что хотите. Это полностью зависит от вас.