Ajax запрос js файла

jQuery.getScript() — производит запрос методом GET к серверу без перезагрузки страницы, с запросом javascript файла. При получении запрошенного файла, код внутри него будет автоматически выполнен.

jQuery.getScript( url [, success ] )
  • url — url-адрес, по которому будет отправлен запрос.
  • success (data, textStatus) — пользовательская функция, которая будет вызвана после ответа сервера.
    • data данные, присланные с сервера.
    • textStatus статус того, как был выполнен запрос.

тот метод представляет из себя альтернативу (сокращенным вариантом) использования функции $.ajax(), вызванной со следующими параметрами:

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

Загруженный скрипт выполняется в глобальном контексте, поэтому он может ссылаться на другие переменные и использовать функции JQuery.

Обработчик успешного выполнения запроса

Скрипт будет запущен после того как файл будет загружен:

$.getScript("ajax/test.js", function(data, textStatus, jqxhr) {
  console.log(data); // данные
  console.log(textStatus); // успех
  console.log(jqxhr.status); // 200
  console.log('Load was performed.');
});

Обработка ошибок

Начиная с jQuery 1.5 мы можем воспользоваться методом .fail():

$.getScript( "ajax/test.js" )
  .done(function( script, textStatus ) {
    console.log( textStatus );
  })
  .fail(function( jqxhr, settings, exception ) {
    $( "div.log" ).text( "Triggered ajaxError handler." );
});

В версиях выше jQuery 1.5, глобальный метод .ajaxError() может быть использован для обработки ошибок:

$( "div.log" ).ajaxError(function( e, jqxhr, settings, exception ) {
  if ( settings.dataType == "script" ) {
    $( this ).text( "Triggered ajaxError handler." );
  }
});

Кэширование

По умолчанию, $.getScript() не использует кэширование. Настроить кэширование можно с помощью $.ajaxSetup():

$.ajaxSetup({
  cache: true
});

В качестве альтернативы, можно воспользоваться методом $.ajax().

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *