Показать сообщение отдельно
  #1 (permalink)  
Старый 20.08.2021, 08:00
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 252

Как изолировать выполнение скриптов, чтобы они не мешали друг другу?
Есть такой код, он забирает данные из гугл таблички из кажой вкладки по очереди.

Для этого через document.head.appendChild(script2) в документ одновременно подгружаются три скрипта (по количеству вкладок), котрые тут же выполняются и через по сути JSONP загружаются данные.
Но проблема в том, что я не знаю какая вкладка грузится в данный момент, а мне нужно в зависимости от названия вкладки модифицировать заливаемые данные.

Код ниже работает случайным образом.
Иногда попадает "images это вкладка IMAGES" иногда нет.
Нужно, чтобы попадало всегда.


<div id="test"></div>
<div id="test2"></div>
<script>
var idfromURL="16gDZVsB8FOIxrsFKbkbBNWC37lPUAfKOGf-rCVxeOmY";
var sheetsWeNeed =["parts","system","images"];
var dataURL=" ";
for (var im=0; im<sheetsWeNeed.length; im++) {

dataURL = "https://spreadsheets.google.com/tq?key="+idfromURL+"&sheet="+sheetsWeNeed[im]+"&headers=1";
 



var script2 = document.createElement('script');
script2.src = dataURL;
document.head.appendChild(script2);



var arrObjectsGoogle = [];
var ii=-1;

var google = { visualization: { Query: { setResponse:function setResponse(data){ 
ii=ii+1;
  

var fields = Object.create(null);
for (var il=0; il<data.table.rows.length; il++) {

for (var ik=0; ik<data.table.cols.length; ik++) {
if(data.table.rows[il].c[ik]!=undefined && data.table.rows[il].c[ik].v!=null ){
 document.getElementById('test2').innerHTML=(sheetsWeNeed[ii]+" "+data.table.cols[ik].label +" __ " +data.table.rows[il].c[ik].v)
}


}
}
}
} } } }


</script>
Ответить с цитированием