Как предварительно загрузить ссылку JSON?

У меня есть функция, которой нужно вызвать ссылку (формат JSON), дело в том, что хотелось бы иметь возможность предзагрузить эту ссылку, чтобы сгладить и сократить время работы при вызове функции.

onSelectionChanged: function (selectedItems) {
    selectedItems.selectedRowsData.forEach(function(data) {
        if (data) {
            colorMe(data.target)     
        }
    });
}

function colorMe(item){
    globalItem = item;
    request('http://blablabla/?format=json',findMaterial);
};  

function findMaterial(data){        
    jq310.each(data, function(table) {
        if (data[table].identifier == globalItem){
            globalData = data[table]
            request('http://another-blablabla/?format=json',findMatchArea);

        };
    });
};

function findMatchArea(areas){                      
    jq310.each(areas, function(area) {

        blablabla

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
227
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы хотите загрузить статический файл json, вам следует подумать о его загрузке в верхней части вашего файла. Для этого вы должны хранить данные в глобальной переменной следующим образом:

let datas;

request('http://blablabla/?format=json', (data) => {
  datas = data
});

onSelectionChanged: function (selectedItems) {
  selectedItems.selectedRowsData.forEach(function(data) {
      if (data) {
        globalItem = data.target;
        findMaterial();
      }
  });
}

function colorMe(item){
  globalItem = item;
};  

function findMaterial(){    
  const data = datas;    
  jq310.each(data, function(table) {
      if (data[table].identifier == globalItem){
          globalData = data[table]
          request('http://another-blablabla/?format=json',findMatchArea);

      };
  });
};

Наконец-то я нашел способ сделать это правильно, вот он:

var mylink = 'https://fr.wikipedia.org/wiki/JavaScript';

function preloadURL(link){
    var xhReq = new XMLHttpRequest();
    xhReq.open("GET", link, false);
    xhReq.send(null);
    var jsonObject = JSON.parse(xhReq.responseText);
    return jsonObject;
};

jsonObjectInv = preloadURL(mylink);

И я просто указываю на свою переменную json, чтобы проанализировать ее (действительно быстрее)

function colorMe(item){
    globalItem = item;
    findMaterial(jsonObjectInv);
};  

Задача решена

Другие вопросы по теме