getScript, загрузка нескольких скриптов в серии? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь загрузить несколько файлов .js с помощью метода GetScript.Мне нужно, чтобы они загружались последовательно, а это означает, что первые файлы .js должны быть полностью загружены перед переходом к следующему.

Вопрос 1: Я использовал приведенный ниже код, нообнаружил, что это становится довольно грязным, когда количество файлов js увеличивается.Есть ли более понятный способ загрузки нескольких файлов .js?

Кроме того, я обнаружил, что function( data, textStatus, jqxhr ) - это функция обратного вызова, которая выполняется при успешном выполнении запроса getScript.Параметры (data, textStatus, jqxhr) могут использоваться в функции, где: data - данные из файла .js, textStatus - состояние запроса, а jqxhr - объект XMLHttpRequest.

Вопрос 2: Почему параметр textStatus используется в качестве обратного вызова?Использование его в этой функции всегда установит его на Успех, верно?

Вопрос 3: Когда я только хочу выполнить следующее getScript, я мог бы просто пропустить параметры и записать: jQuery.getScript("url.min.js", function() { Правильно?

jQuery.getScript("//url1.com/file1.js", function(data, textStatus, jqxhr) {
  jQuery.getScript("//url2.com/file2.js", function(data, textStatus, jqxhr) {
    jQuery.getScript("//url3.com/file3.js", function(data, textStatus, jqxhr) {
      jQuery.getScript("//url4.com/file4.js", function(data, textStatus, jqxhr) {
      });
    });
  });
});

Спасибо.

1 Ответ

0 голосов
/ 28 февраля 2019

Я использовал приведенный ниже код, но обнаружил, что это становится довольно грязным, когда увеличивается количество js-файлов.Есть ли более понятный способ загрузки нескольких файлов .js?

Вы можете немного высушить его, рекурсивно просматривая массив URL-адресов, предполагая, что в обратном вызове не требуется никакой дополнительной обработки.Примерно так:

function getScript(arr, i) {
  i = i || 0;
  jQuery.getScript(arr[i], function() {
    i++;
    arr.length > i && getScript(arr, i);
  });
}
getScript(['//url1.com/file1.js', '//url2.com/file2.js', '//url3.com/file3.js', '//url4.com/file4.js']);

Почему параметр textStatus используется в качестве обратного вызова?Использование его в этой функции всегда установит его на Успех, верно?

Он следует той же схеме, что и другие методы jQuery AJAX, вы правы, что в этом случае это всегда будет успешный ответ.

Когда я хочу выполнить только следующий getScript, я могу просто пропустить параметры и написать: jQuery.getScript ("url.min.js", function () {Correct?

Да

...