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().