Problema con i "Web Worker"

di il
6 risposte

Problema con i "Web Worker"

Sto leggendo un libro su HTML5.
Riguardo ai "Web Worker", non riesco a far funzionare i seguenti due programmi "Html1.html" e "Worker1.js"
(i due programmi sono sulla STESSA cartella).
Come output dovrebbe apparire la sequenza di numeri:
1 2 4 8 16 32 64 128 256 512 ...
e invece la pagina del browser (Chrome) rimane completamente VUOTA.
Qualcuno puo' aiutarmi?

Html1.html

   <head>
       <script>
           var worker=new Worker("Worker1.js");
           worker.onmessage=function (event)
           {
               document.getElementById("sequenza").textContent += event.data+=" ";
           }
       </script>
   </head>
   <body>
       <div id="sequenza">
       </div>
   </body>

Worker1.js

var i=1;
setInterval(moltiplica,100);
function moltiplica ()
{
   i*=2;
   postMessage(i);
}

6 Risposte

  • Re: Problema con i "Web Worker"

    Apri la Console di JavaScript richiamando i Developer Tools con il tasto F12 e verifica l'eventuale presenza di errori.

    Se non viene riportato nulla, aggiungi qualche log o esegui il debugging per vedere cosa accade durante l'esecuzione dello script.

    Ciao! :)

  • Re: Problema con i "Web Worker"

    Come ambiente di sviluppo uso "Visual Studio Code".
    Mi sembra (ma NON sono sicuro) che l'errore e' che non viene trovato il file "Worker1.js",
    ma tale file si trova nella STESSA cartella di "Html1.html", quindi NON capisco come faccia a non trovarlo ...

  • Re: Problema con i "Web Worker"

    03/01/2023 - Occoragin ha scritto:


    Mi sembra (ma NON sono sicuro) che l'errore e' che non viene trovato il file “Worker1.js”

    Da dove arriva il tuo sospetto? Fai vedere qualcosa anche a noi, con uno screenshot o altro, altrimenti non possiamo capire.

    Magari si tratta di una baggianata risolvibile in 10 secondi, anzi è molto probabile che sia così…

  • Re: Problema con i "Web Worker"

    Questo e' l'errore che viene rilevato:

    Uncaught DOMException DOMException: Failed to construct 'Worker': Script at 'file:///C:/Users/Occoragin/Documents/TEMPX/VSCode-JavaScript/ProgrammaX/Worker1.js' cannot be accessed from origin 'null'.
    at <anonymous> (c:\Users\Occoragin\Documents\TEMPX\VSCode-JavaScript\ProgrammaX\Html1.html:3:24)

    L'errore e' nella linea:

    var worker=new Worker("Worker1.js");

    in corrispondenza della keyword "new".

    Ho provato a sostituire "Worker1.js" con "abc.js" (un file inesistente) e l'errore che mi da e' sempre lo stesso;
    ma ripeto che "Html1.html" e "Worker1.js" sono sulla STESSA cartella, quindi non capisco come faccia a NON trovarlo!

  • Re: Problema con i "Web Worker"

    Forse il problema è che stai utilizzando il protocollo file:// per accedere alla tua pagina, corrispondente al file locale aperto direttamente nel browser.

    In questa modalità, molte delle feature di JavaScript sono disabilitate per motivi di sicurezza.

    Se è così, devi provare ad accedere alla pagina Web usufruendo di un Web Server.

    Se usi Visual Studio Code ad esempio, puoi usare l'estensione Live Server e il pulsante “Go Live” nella barra di stato e attivare un piccolo server per il debugging, che ti restituisce la pagina usando però la connessione HTTP instaurando una comunicazione client/server, piuttosto che aprire direttamente il file fisicamente in locale dal disco.

    Ti accorgi della differenza tra i due perché in un caso c'è il protocollo file://, nell'alto siamo in http://.

    Ciao! :)

  • Re: Problema con i "Web Worker"

    GRAZIE per la dotta risposta;
    per adesso SALTO il capitolo del libro sui "Web Worker" e proseguo a leggerlo fino alla fine.
    Una volta arrivato alla fine installero' l'estensione "Live Server" e provero' a eseguire i due programmi.
    Grazie ancora!

Devi accedere o registrarti per scrivere nel forum
6 risposte