-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path05_obradaBlokova.js
81 lines (63 loc) · 2.57 KB
/
05_obradaBlokova.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/* -------------------------------------------------------------------------- */
// Copyright (c) 2021. Nikola Vukićević
/* -------------------------------------------------------------------------- */
let MULTITHREADING = typeof(Worker) !== undefined && false;
let BROJ_THREADOVA = navigator.hardwareConcurrency;
let KORAK = BROJ_THREADOVA;
let INDEKS_ID = 1;
let INDEKS_THREAD;
let T1, T2, ODZIV;
/* -------------------------------------------------------------------------- */
function obradaBlokova(spisak) {
/* ----- telemetrija ---------------------------------------------------- */
let t1 = performance.now();
/* ---------------------------------------------------------------------- */
let listaBlokova = [];
spisak.forEach((klasa) => {
punjenjeListeBlokova(klasa, listaBlokova);
});
if(MULTITHREADING && listaBlokova.length > KORAK) {
kreiranjeWorkera(listaBlokova);
}
else {
listaBlokova.forEach(blok => {
let definicijaJezika = mapaKlasa.get(blok[0]);
obradaPojedinacnogBloka(blok[1], definicijaJezika);
});
}
/* ----- telemetrija ---------------------------------------------------- */
let t2 = performance.now();
let odziv = (t2 - t1) + "ms";
console.log(`Obrada blokova (vreme obrade: ${odziv})`);
/* ---------------------------------------------------------------------- */
}
/* -------------------------------------------------------------------------- */
function punjenjeListeBlokova(klasa, lista) {
let listaBlokova = document.getElementsByClassName(klasa);
for(let i = 0; i < listaBlokova.length; i++) {
if(listaBlokova[i].id == "") {
listaBlokova[i].id = `kod_blok_pojedinacni_${INDEKS_ID}`;
INDEKS_ID++;
}
lista.push( [ klasa , listaBlokova[i] , listaBlokova[i].innerText , listaBlokova[i].id ] );
}
}
/* -------------------------------------------------------------------------- */
function obradaPojedinacnogBloka(blok, definicijaJezika) {
let tekst = blok.innerText;
obradaKoda(tekst, definicijaJezika, blok, REZIM_ISPISA);
}
/* -------------------------------------------------------------------------- */
function odWrapperovanje() {
let wrapper = document.getElementById("wrapper");
wrapper.style.width = "auto";
wrapper.style.height = "auto";
}
/* -------------------------------------------------------------------------- */
//odWrapperovanje();
setTimeout(() => {
if(typeof(document) !== "undefined") {
obradaBlokova(spisakKlasa);
}
}, 100);
/* -------------------------------------------------------------------------- */