Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Aggiornare testo setInterval

    Sto provando a fare un codice che prende il valore contenuto in un file .txt remoto e lo stampa. Questo valore stampato dev'essere però ricontrollato e aggiornato ogni tot.à
    Io sono arrivato qui, ma non funziona l'aggiornamento, cioè se io cambio il valore nel .txt lo script non lo aggiorna. Dove sbaglio?

    codice:
    <script>
    var lines;
    function DoInit() {
        
    	
    	if (window.XMLHttpRequest)
    	{// code for IE7+
    		xmlhttp=new XMLHttpRequest();
    	}
    	else
    	{// code for IE6, IE5
    		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	xmlhttp.open("GET","http://vittoriotorri.altervista.org/fileLocale.txt",false);
    	xmlhttp.send();
    	xmlDoc=xmlhttp.responseXML;
    	lines = xmlhttp.responseText.split("\n");
    	return lines;
    	
    }
    
    function Ripetuta(){
    	setInterval("DoInit()", 20000);
    	return DoInit();
    }
    var stringa=Ripetuta();
    </script>
    
    <body>
    <script type="text/javascript">
    document.write(stringa);
    </script>
    </body>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Potrebbe l'annoso problema di cache (che ha solo IE) lo risolvi cosi
    xmlhttp.open("GET","http://vittoriotorri.altervista.org/fileLocale.txt?noCache="+ Math.floor(Math.random() * (9999)),false);
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Usare AJAX sincrono insieme a setInterval è come prepararsi al suicidio. Usalo asincrono!

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    var nSession = -1;
    
    function readState () {
    	if (this.readyState !== 4) { return; }
    	var oDoc = this.responseXML; // che ci devi fare con questo documento XML?? sei sicuro che ti serva???
    	var aLines = this.responseText.split(/\r?\n/);
    	// stampo un output di esempio
    	document.body.appendChild(document.createElement("br"));
    	document.body.appendChild(document.createTextNode(aLines.join(",")));
    }
    
    function sendRequest () {
    	oReq = window.XMLHttpRequest ? new XMLHttpRequest() : /* IE: */ new ActiveXObject("Microsoft.XMLHTTP");
    	oReq.onreadystatechange = readState;
    	oReq.open("GET", "http://vittoriotorri.altervista.org/fileLocale.txt", true);
    	oReq.send();
    }
    
    function avvia () {
    	if (nSession !== -1) { return; }
    	nSession = setInterval(sendRequest, 20000);
    }
    
    function interrompi () {
    	clearInterval(nSession);
    	nSession = -1;
    }
    
    onload = function () {
    	sendRequest();
    	avvia();
    };
    </script>
    </head>
     
    <body>
    
    
    
    [<span style="color: #0000ff; text-decoration: underline; cursor: pointer;" onclick="avvia();">avvia</span> | <span style="color: #0000ff; text-decoration: underline; cursor: pointer;" onclick="interrompi();">interrompi</span> ]</p>
    
    </body>
    </html>
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.