Il codice non viene eseguito nel browser.

di il
5 risposte

Il codice non viene eseguito nel browser.

Buonasera a tutti,

ho un problema con l'esecuzione del codice in Google Chrome e Internet Explorer.

Se lo mando in esecuzione su o in funziona correttamente.

Ho potuto testare la bontà del codice analizzandolo anche su e rilevare che la stesura non presenta errori.

Dalle impostazioni di Chrome posso verificare che la versione è la 85.0.4183.121 (Build ufficiale) (a 32 bit).

Eseguo su Windows 7 Professional 32 bit.

Qualcuno ha affrontato e risolto questo problema?

Grazie a chi vorrà aiutarmi.

5 Risposte

  • Re: Il codice non viene eseguito nel browser.

    Ciao dev,
    Sarebbe utile se ci mostrarsi il codice che non funziona e il metodo che usi per importarlo nel browser
    Senza questi dati non c'è molto da fare...
  • Re: Il codice non viene eseguito nel browser.

    Buonasera, grazie e scusa per il ritardo nella risposta.

    Il codice del file HTML:
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Build a table</title>
        <link rel = "stylesheet" type = "text/css" href = "mystyle.css" />
    </head>
    <body>
    <table border=1 id='datatable'>
    <!-- here goes our data! -->
    </table>
    </body>
    <script src="build-table.js"></script>
    </html>
    
    il codice del file CSS (per completezza):
    
    #datatable {
      font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
      border-collapse: collapse;
      width: 100%;
    }
    
    #datatable td, #datatable th {
      border: 1px solid #ddd;
      padding: 8px;
    }
    
    #datatable tr:nth-child(even){background-color: #f2f2f2;}
    
    #datatable tr:hover {background-color: #ddd;}
    
    #datatable th {
      padding-top: 12px;
      padding-bottom: 12px;
      text-align: left;
      background-color: #4CAF50;
      color: white;
    }
    
    
    il codice Javascript:
    
    var municipalities; 
    
    var mysql = require('mysql');
    
    var con = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "<my_pwd>",
      database: "my_db"
    });
    
    
    
    function readData() {
    con.query('select * from municipalities limit 10', function(err, result){ 
      if (err) throw err;
        municipalities = result.toArray;
       generateTable(table, municipalities);   
    });
    
    }
    
    function generateTableHead(table, data) {
     if (err) throw err;
      let thead = table.createTHead();
      let row = thead.insertRow();
      for (let key of data) {
        let th = document.createElement("th");
        let text = document.createTextNode(key);
        th.appendChild(text);
        row.appendChild(th);
      }
    }
    
    function generateTable(table, data) {
     if (err) throw err;
    
      for (let element of data) {
        let row = table.insertRow();
        for (key in element) {
          let cell = row.insertCell();
          let text = document.createTextNode(element[key]);
          cell.appendChild(text);
        }
      }
    }
    
    let table = document.querySelector("table");
    let data = Object.keys(municipalities[0]);
    
    
    readData();
    generateTable(table, municipalities); 
    generateTableHead(table, data);
    
    Grazie per la collaborazione.
  • Re: Il codice non viene eseguito nel browser.

  • Re: Il codice non viene eseguito nel browser.

    Ciao Dev,
    Grazie per aver fornito il codice ben formattato.
    Dal codice che hai riportato, sembra che tu stia richiedendo il modulo "mysql" per effettuare una connessione al database direttamente dal browser. In effetti, il modulo "mysql" (e anche il metodo "require(...)") sono entrambe funzionalità specifiche di Nodejs.
    Attualmente non è possibile connettersi ad un database mysql direttamente dal browser.

    In genere, è consigliabile utilizzare un linguaggio di programmazione lato server che prenda i dati dal database e sia pronto a fornirli quando viene richiesta una pagina specifica (per esempio, "http://localhost/dati-tabell"). Poi, dal browser fai una richiesta AJAX a quella pagina, in modo da ottenere i dati.
    In pratica, è come creare una piccola API.

    Per effettuare richieste AJAX, puoi utilizzare le seguenti API:
    fetch API (più recente e semplice da utilizzare)
    XMLHttpRequest (più supportata, ma un poco più complicata)

    Per quanto riguarda il server, puoi utilizzare Node.js con express, oppure anche PHP con un server Apache. In effetti, finché puoi inviare i dati in formato JSON, non è importante quale architettura decidi di usare.
  • Re: Il codice non viene eseguito nel browser.

    Il codice che hai riportato è progettato per essere eseguito lato server, dato che include una connessione al database.
    Per eseguirlo, devi utilizzare Node.js.
    Ciao!
    Grazie Alka.

    Node l'avevo già installato ed effettivamente non ho nessun problema di esecuzione e riesco normalmente ad effettuare tutte le operazioni ma credevo di poterne sfruttare i moduli facendovi riferimento in qualche modo da un file javascript.

    Come tu sai io vengo dalla programmazione .net ed è tutta un'altra storia.

    andreadev ha scritto:


    Ciao Dev,
    Grazie per aver fornito il codice ben formattato.
    Figurati, è il minimo sindacale.

    andreadev ha scritto:


    ...

    In pratica, è come creare una piccola API.

    ....
    In tutta onestà credevo che fosse molto più semplice e interoperabile.

    andreadev ha scritto:


    Per quanto riguarda il server, puoi utilizzare Node.js con express, oppure anche PHP con un server Apache. In effetti, finché puoi inviare i dati in formato JSON, non è importante quale architettura decidi di usare.
    E' una soluzione relativamente complessa che richiede sicuramente più studio.

    Saluti e grazie per le dritte.
Devi accedere o registrarti per scrivere nel forum
5 risposte