Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311

    problemi con lettura dati API metodo FETCH

    buongiorno. sto usando questo semplice codice per ottenere dati dal sito openweathermap (velocità del vento).
    mi restituisce correttamente il valore ma cancella l'intera parte della pagina web. mi sapere spiegare il perchè?
    grazie

    codice:
    <script>
    fetch("https://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=MY API KEY")
    .then(response => response.json())
    .then(data => {
      // Ottieni la velocità del vento dai dati
      const windSpeed = data.wind.speed;
    document.write(windSpeed);
    
    
    });
    </script>

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    sto usando questo semplice codice per ottenere dati dal sito openweathermap (velocità del vento).
    mi restituisce correttamente il valore ma cancella l'intera parte della pagina web. mi sapere spiegare il perchè?
    Stai usando document.write(), quindi leggi bene la documentazione relativa a questa funzione, in particolare le note e la spiegazione del funzionamento in dettaglio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311
    Quote Originariamente inviata da alka Visualizza il messaggio
    Stai usando document.write(), quindi leggi bene la documentazione relativa a questa funzione, in particolare le note e la spiegazione del funzionamento in dettaglio.

    Ciao!
    innanzitutto grazie mille
    in effetti se uso "alert" non dà problemi. quindi il problema è su "document.write". ma proprio non riesco a capire cosa sbaglio con document.write.
    non trovo spiegazioni al proposito sul link che mi hai suggerito

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    non trovo spiegazioni al proposito sul link che mi hai suggerito
    La prima cosa che appare è un mega riquadro di colore rosso che indica espressamente che si tratta di un metodo deprecato e che non andrebbe utilizzato.

    Nel paragrafo appena sotto c'è la nota che indica espressamente quanto segue:
    Note: Because document.write() writes to the document stream, calling document.write() on a closed (loaded) document automatically calls document.open(), which will clear the document.

    In breve, deve essere chiamato mentre la pagina è in fase di costruzione, ossia deve comparire negli script che si trovano nella pagina quando questa viene interpretata per costruirla nel browser: non ha senso chiamare document.write() *dopo* che la pagina è completa, perché quella scrittura non è chiaro dove dovrebbe finire, visto che viene fatta quando la pagina è stata completata del tutto.

    Bisogna inserire un elemento nella pagina a cui eventualmente attribuire un ID e successivamente usare document.getElementById() per recuperarlo e inserire il testo all'interno dell'elemento (nella documentazione trovi esempi a riguardo).

    Fai una ricerca su Google per entrambe le cose.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311
    Quote Originariamente inviata da alka Visualizza il messaggio
    La prima cosa che appare è un mega riquadro di colore rosso che indica espressamente che si tratta di un metodo deprecato e che non andrebbe utilizzato.

    Nel paragrafo appena sotto c'è la nota che indica espressamente quanto segue:
    Note: Because document.write() writes to the document stream, calling document.write() on a closed (loaded) document automatically calls document.open(), which will clear the document.

    In breve, deve essere chiamato mentre la pagina è in fase di costruzione, ossia deve comparire negli script che si trovano nella pagina quando questa viene interpretata per costruirla nel browser: non ha senso chiamare document.write() *dopo* che la pagina è completa, perché quella scrittura non è chiaro dove dovrebbe finire, visto che viene fatta quando la pagina è stata completata del tutto.

    Bisogna inserire un elemento nella pagina a cui eventualmente attribuire un ID e successivamente usare document.getElementById() per recuperarlo e inserire il testo all'interno dell'elemento (nella documentazione trovi esempi a riguardo).

    Fai una ricerca su Google per entrambe le cose.
    sto provando in ogni modo ma non ci riesco.
    non ci sono altri modi più semplici?
    avevo provato a sostituire document.write con console.log ma non funziona

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    sto provando in ogni modo ma non ci riesco.
    Se non dici cosa stai cercando di fare, difficile esserti d'aiuto.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    non ci sono altri modi più semplici?
    Cosa c'è di così complesso nello scrivere una, e sottolineo una riga di codice?

    Se questa cosa è complessa e non vuoi approfondire o documentarti, né spiegare i dubbi, ma cerchi la "pappa pronta" o una soluzione che faccia tutto da sola senza scrivere nulla, come puoi pensare di scrivere poi codice per il resto del programma?

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    avevo provato a sostituire document.write con console.log ma non funziona
    Al netto che non è chiaro come hai fatto la sostituzione, console.log() funziona senz'altro, ma il problema non è che puoi sostituire una cosa con un rimpiazzo a caso, così senza una logica: ogni funzione che chiami ha un suo ruolo e un suo effetto, e se devi scrivere nella pagina e invece fai log sulla console, non è ovviamente la stessa cosa.

    Non mi dire che non riesci a comprendere questo esempio.
    Se è così, spiega cosa non è chiaro. Non esiste "scorciatoia" che risolva automaticamente il tuo problema.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311
    Quote Originariamente inviata da alka Visualizza il messaggio
    Se non dici cosa stai cercando di fare, difficile esserti d'aiuto.


    Cosa c'è di così complesso nello scrivere una, e sottolineo una riga di codice?

    Se questa cosa è complessa e non vuoi approfondire o documentarti, né spiegare i dubbi, ma cerchi la "pappa pronta" o una soluzione che faccia tutto da sola senza scrivere nulla, come puoi pensare di scrivere poi codice per il resto del programma?


    Al netto che non è chiaro come hai fatto la sostituzione, console.log() funziona senz'altro, ma il problema non è che puoi sostituire una cosa con un rimpiazzo a caso, così senza una logica: ogni funzione che chiami ha un suo ruolo e un suo effetto, e se devi scrivere nella pagina e invece fai log sulla console, non è ovviamente la stessa cosa.

    Non mi dire che non riesci a comprendere questo esempio.
    Se è così, spiega cosa non è chiaro. Non esiste "scorciatoia" che risolva automaticamente il tuo problema.
    <p> è un tag html. come faccio ad aggiungergli il contenuto della variabile windSpeed ?


    poi per farlo apparire al video, sotto al codice che ho postato, devo inserire questo??
    let vento = document.getElementById("myP").innerText;
    document.write(vento);




    sinceramente ne ho fatti a decine di script (anche di complessità media) con document.write e hanno sempre funzionato senza problemi.
    stavolta integrando questa API non riesco ad uscirmene.
    a me interessa far apparire quel valore al video.
    se ci si riesci con una sola riga, potresti indicarla tu?


    grazie

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    <p> è un tag html. come faccio ad aggiungergli il contenuto della variabile windSpeed ?
    Come detto in precedenza, seguendo i link alla documentazione fornita,
    1) aggiungi un attributo id="nome" all'elelemento che vuoi modificare tramite script;
    2) usi la funzione document.getElementById("nome") per accedere all'elemento;
    3) imposti la proprietà innerText al valore testuale che vuoi mostrare all'interno.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    poi per farlo apparire al video, sotto al codice che ho postato, devo inserire questo??
    let vento = document.getElementById("myP").innerText;
    document.write(vento);
    No, qui stai leggendo il testo dell'elemento, non lo stai impostando!
    Inoltre, document.write() va rimosso e non va più utilizzato.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    sinceramente ne ho fatti a decine di script (anche di complessità media) con document.write e hanno sempre funzionato senza problemi.
    Avremo un concetto diverso di "complessità media", perché scrivere un testo in un elemento della pagina HTML è forse la prima cosa che si fa quando si inizia a "scriptare" nel browser. Meno di questo non c'è altro.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    stavolta integrando questa API non riesco ad uscirmene.
    Mi pare che gli aiuti siano stati forniti, ma continui a non esporre dubbi specifici e a chiedere codice già pronto.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    311
    Quote Originariamente inviata da alka Visualizza il messaggio
    Come detto in precedenza, seguendo i link alla documentazione fornita,
    1) aggiungi un attributo id="nome" all'elelemento che vuoi modificare tramite script;
    2) usi la funzione document.getElementById("nome") per accedere all'elemento;
    3) imposti la proprietà innerText al valore testuale che vuoi mostrare all'interno.


    No, qui stai leggendo il testo dell'elemento, non lo stai impostando!
    Inoltre, document.write() va rimosso e non va più utilizzato.


    Avremo un concetto diverso di "complessità media", perché scrivere un testo in un elemento della pagina HTML è forse la prima cosa che si fa quando si inizia a "scriptare" nel browser. Meno di questo non c'è altro.


    Mi pare che gli aiuti siano stati forniti, ma continui a non esporre dubbi specifici e a chiedere codice già pronto.


    chiedere il codice pronto è questo: fammi uno script che mostri al video la velocità del vento.
    io invece già ho postato l'intero script funzionante al 100% (con alert). non riesco a fare quello che in basic si chiamava print.
    e ancora adesso non ho capito.
    purtroppo questi benedetti elementi non li so gestire.
    non sono un professionista. ma neanche un principiante.
    ho un sito dove ho integrato javascript per creare jukebox, promemoria gestiti tramite cookie e persino una web tv privata.
    tutti questi script funzionano da anni con document.write, l'equivalente del print in basic.
    stavolta sto sbattendo la testa e non ci riesco.
    sicuramente mea culpa.
    ma hai scritto 100 righe.
    ne bastavano 3 personalizzate per lo script che ho integrato e la faccenda finiva lì con ulteriori ringraziamenti.
    scusa lo sfogo
    ma non mi sembra di chiedere codice già bello e fatto
    ripeto: mi serve un print
    se me lo puoi fare te ne sarò ulteriormente grato, visto che già ti ho ringraziato.
    altrimenti ti chiedo l'ultimo favore di non postare altre nozioni o codici, perchè gli elementi non mi entrano in testa!!!

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    chiedere il codice pronto è questo: fammi uno script che mostri al video la velocità del vento.
    Tu continui a dire che non ci riesci, ma non dici cosa non capisci, né posti il codice che hai scritto nel tentativo di realizzare quanto ti dico, né vuoi saperne di approfondire oltre.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    e ancora adesso non ho capito.
    E ancora adesso non posso aiutarti su cosa non hai capito, perché continui a dire di non capire, ma continui a NON dire cosa non hai capito di preciso, e continui a dire che ti basterebbe una riga di codice già pronta, ma nel contempo sostieni che non stai chiedendo codice già pronto, perché ti basta solo una cosa mentre il resto già ce l'hai, probabilmente copiato da altra fonte, perché non esiste che tu voglia dire di saper correre se evidentemente non sei in grado di camminare.

    Scusa tu il mio di sfogo.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    non sono un professionista. ma neanche un principiante.
    Vorrei crederlo, ma le evidenze portano ad altro.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    ho un sito dove ho integrato javascript per creare jukebox, promemoria gestiti tramite cookie e persino una web tv privata.
    tutti questi script funzionano da anni con document.write, l'equivalente del print in basic.
    Non esiste affatto che tu possa convincere me, che sviluppo dagli anni 90 e non solo il JavaScript, che simili cose anche la più banale, tipo gestire dei cookie, si facciano con una "document.write", nella maniera più assoluta.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    stavolta sto sbattendo la testa e non ci riesco.
    sicuramente mea culpa.
    ma hai scritto 100 righe.
    ne bastavano 3 personalizzate per lo script che ho integrato e la faccenda finiva lì con ulteriori ringraziamenti.
    scusa lo sfogo
    Anche nel tuo caso sarebbe bastato impiegare tutto questo tempo a provare a studiare e a implementare la soluzione, invece di spingere sul voler dimostrare che crei siti con una funzione JavaScript deprecata assolutamente insufficiente nella maggior parte dei casi, e a voler convincere me di questo quando so bene che è il contrario.

    Quote Originariamente inviata da enzoiav Visualizza il messaggio
    ma non mi sembra di chiedere codice già bello e fatto
    ripeto: mi serve un print
    se me lo puoi fare te ne sarò ulteriormente grato, visto che già ti ho ringraziato.
    altrimenti ti chiedo l'ultimo favore di non postare altre nozioni o codici, perchè gli elementi non mi entrano in testa!!!
    Ok, allora usa document.write(): se ha funzionato per tutti gli altri siti, compresi una webtv, funzionerà anche per visualizzare un piccolo e striminzito testo, no?

    In conclusione, siamo qui tutti disponibili a dare una mano, e credo di aver fatto tutto il necessario per indirizzarti verso una soluzione, dandoti tutti i link del caso, ma tu perdi tempo a millantare e a sostenere cose impossibili, e di averle realizzate con una istruzione sola, mentre ignori completamente le indicazioni e non hai nemmeno l'onestà intellettuale di ammettere che non vuoi imparare.

    Sarà anche una questione di principio, ma non mi piace essere preso in giro e non sono fesso.

    Rileggi il thread, rileggi gli esempi postati (che differenza fa se io scrivo una cosa che puoi trovare sui siti che ti ho linkato, infatti) e conduci la discussione nel modo opportuno, altrimenti tanti auguri.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.