Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Background worker

[es] :: Javascript i AJAX :: Background worker

[ Pregleda: 1140 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

damsodo
free
free
NS

Član broj: 345942
Poruke: 7
*.dynamic.isp.telekom.rs.



Profil

icon Background worker04.01.2021. u 22:24 - pre 39 meseci
Pozdrav svima,

pravim neku sitnu html stranicu i treba mi da koristim background worker u javascriptu. objasnjenje: https://www.w3schools.com/html/html5_webworkers.asp
(to je pozadinski thread koji ne blokira interaktivnost stranice vec se izvrsava u backgroundu)


Upoznat sam sa konceptom i radio sam ranije te stvari u C#, ali ovde jednostavno nece da pokrene worker??


Koji god primer sa interneta da pokusam, glavna skripta radi, ali ne pokrece worker?
Pitao sam se da nije mozda do putanje worker scripte ali ona se nalazi u istom direktorijumu pa ne bi trebalo biti problema.
jednostavno padne kada hoce da instancira worker. w = new Worker("demo_workers.js");.Tj ne javi nikakvu gresku vec samo ne nastavi sa izvrsavanjem skripta

da li neko vidi gresku?
nopr glavna html stranica izgleda ovako (primer sa sajta https://www.w3schools.com/html/html5_webworkers.asp)
Code:
<!DOCTYPE html>
<html>
<body>

<p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button>
<button onclick="stopWorker()">Stop Worker</button>

<script>
var w;

function startWorker() {
  if (typeof(Worker) !== "undefined") {
    if (typeof(w) == "undefined") {
     w = new Worker("demo_workers.js");
    }
    w.onmessage = function(event) {
      document.getElementById("result").innerHTML = event.data;
    };
  } else {
    document.getElementById("result").innerHTML = "Sorry! No Web Worker support.";
  }
}

function stopWorker() {
  w.terminate();
  w = undefined;
}
</script>

</body>
</html>





a skripta od workera demo_workers.js :

Code:
var i = 0;

function timedCount() {
  i = i + 1;
  postMessage(i);
  setTimeout("timedCount()",500);
}

timedCount();




p.s. bio sam nekada clan pod drugim imenom dam
so ali sam pogubio sifre od starog provajdera koji je u medjuvremenu preuzet pa mi je procedura da vratim nalog

[Ovu poruku je menjao damsodo dana 04.01.2021. u 23:38 GMT+1]

[Ovu poruku je menjao damsodo dana 04.01.2021. u 23:39 GMT+1]
 
Odgovor na temu

Deunan

Član broj: 338178
Poruke: 84
178.237.210.*



+21 Profil

icon Re: Background worker05.01.2021. u 12:10 - pre 39 meseci
Citat:

Pitao sam se da nije mozda do putanje worker scripte ali ona se nalazi u istom direktorijumu pa ne bi trebalo biti problema.

U kojem ti je direktorijumu? Prema ovoj putanji, worker treba da bude u root folderu, gde se nalazi index.html fajl.
Jos bolje, stavi da ti putanja bude:
Code:

w = new Worker("/demo_workers.js");   // Uvek trazi u root folderu

Ne vidim da ima neku drugu gresku.
 
Odgovor na temu

damsodo
free
free
NS

Član broj: 345942
Poruke: 7
*.dynamic.isp.telekom.rs.



Profil

icon Re: Background worker05.01.2021. u 17:09 - pre 39 meseci
Pokusao sam , ali ne radi.
Stavio sam konstruktor u try..catch i uhvatio exception
Failed to construct 'Worker': Script at 'file:///D:/demo_workers.js' cannot be accessed from origin 'null'.
Objasnjenje ovog errora je da ne mzoe da se pokrene worker ciji path le na lokalu, vec treba da ima http:// url. Odnosi se na Chrome, mada meni i u Edge daje istu gresku.Jer ne koristim xampp niti server, vec sve na lokalu pravim,kao prezentaciju.
https://stackoverflow.com/ques...10/chrome-cant-load-web-worker

tu se nude neka resenja kao da simuliram moj lokalni path da ga posmatra kao http,ali mi je sve to preobimno sada za sitni posao za koji mi worker treba: da na triger pali i gasi tj ds simulira start i stop nekih stanja u state transition diagramu.
 
Odgovor na temu

mjanjic
Šikagou

Član broj: 187539
Poruke: 2699



+698 Profil

icon Re: Background worker05.01.2021. u 17:56 - pre 39 meseci
Pa moraš preko nekog servera, možeš onu ekstenziju za Visual Studio Code, XAMPP/WAMPP ili šta ti već odgovara. JS nema direktan pristup lokalnom disku iz bezbednosnih razloga i to odavno tako funkcioniše.
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Background worker05.01.2021. u 19:07 - pre 39 meseci
Prilično je jednostavno da uključiš IIS
https://teckangaroo.com/enable-iis-windows-10/

Onda ubaciš fajlove u neki pod folder c:\inetpub\wwwroot\nesto
I dalje tome pristupaš kao http://localhost/nesto
 
Odgovor na temu

damsodo
free
free
NS

Član broj: 345942
Poruke: 7
*.dynamic.isp.telekom.rs.



Profil

icon Re: Background worker06.01.2021. u 00:14 - pre 39 meseci
evo jednog resenja https://www.javascripture.com/URL#createObjectURL
ovako radi,sad samo da uguram sopstveni kod pa javim

Code:
<!-- Creates a Worker using a local script instead of a remote url -->
<script id='code1' type='text/plain'>
  postMessage('foo');
  var i = 0;

function timedCount() {
  i = i + 1;
  postMessage(i);
  setTimeout("timedCount()",1000);
}

timedCount();
</script>
<script>
  
</script>

<!DOCTYPE html>
<html>
<body>

<p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button>
<button onclick="stopWorker()">Stop Worker</button>

<script>  
var w;

  
function startWorker() {
  if (typeof(Worker) !== "undefined") {
    if (typeof(w) == "undefined") {
    var code = document.getElementById('code').textContent;
  var blob = new Blob([code1], { type: 'application/javascript' });
  var url = URL.createObjectURL(blob);
     w = new Worker(url);
     URL.revokeObjectURL(url);
    }
    w.onmessage = function(event) {
      document.getElementById("result").innerHTML = event.data;
    };
  } else {
    document.getElementById("result").innerHTML = "Sorry! No Web Worker support.";
  }
}

function stopWorker() {
  w.terminate();
  w = undefined;
}
</script>

</body>
</html>








 
Odgovor na temu

bokinet

Član broj: 29844
Poruke: 574



+50 Profil

icon Re: Background worker06.01.2021. u 00:16 - pre 39 meseci
Dobra i pouzdana dev alternativa oko stack-ova

bitnami wamp stack (win)

ili

bitnami mamp stack (macos)

bitnami.com
 
Odgovor na temu

[es] :: Javascript i AJAX :: Background worker

[ Pregleda: 1140 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.