Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Refresh tramite richiesta ajax

    Salve, sono di nuovo sul fronte, e forse tempo fa avevo già chiesto una cosa simile.
    Comunque, ho crato questa funzione per aggiornare un div, solo che va bene in explorer ma in firefox no.
    In pratica firefox dopo un po di tempo, fa sparire il colore al testo, e dopo altro tempo comincia duplicare le immagini, questo e il codice:

    Codice PHP:
    <script type="text/javascript">
    var 
    xmlhttp
    var url "test_luogo.php";
    function 
    loadXMLDoc(url)
    {
    // codice per Mozilla, etc.
    if (window.XMLHttpRequest)
      {
      
    xmlhttp=new XMLHttpRequest()
      
    xmlhttp.onreadystatechange=xmlhttpChange
      xmlhttp
    .open("GET",url,true)
      
    xmlhttp.send(null)
      }
    // codice per  IExplore
    else if (window.ActiveXObject)
      {
      
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
        if (
    xmlhttp)
        {
        
    xmlhttp.onreadystatechange=xmlhttpChange
        xmlhttp
    .open("GET",url,true)
        
    xmlhttp.send()
        
        }
      }
    }

    function 
    xmlhttpChange()
    {
    // if xmlhttp shows "loaded"
    if (xmlhttp.readyState==4)
      {
      
    // if "OK"
      
    if (xmlhttp.status==200)
        {    
      
          
    document.getElementById('mio').innerHTML xmlhttp.responseText;
          
        }
      else
        {
        
    alert("Impossibile ricevere i dati")
        }
      }
    }
    setInterval("loadXMLDoc(url)",7000);
    </script> 
    Qualche idea del problema che mi assilla?

  2. #2
    up up up VVoVe:

  3. #3
    UP Up Up VVoVe:

  4. #4
    Up Up Up VVoVe:

  5. #5
    Non ce proprio nessuno che può darmi una mano?

  6. #6
    ma proprio nessuno?

  7. #7
    Originariamente inviato da Brascka
    Up Up Up VVoVe:
    E si, ho capito

    Cmq, stai facendo diversi sbagli. Il primo non è "fatale" ma è di ottimizzazione; che senso ha scrivere una cosa del genere?
    codice:
    if(a==1)
      alert("ciao");
    else if(a==2)
      alert("ciao");
    In parole povere il codice è lo stesso sia con FF che con IE, apparte che nel chiamare XMLHttpRequest o ActiveXObject.

    Secondo, anche se questo non è molto importante, i metodi send e open andrebbero chiamati prima dell'onreadystatechange.

    Più importante è il fatto che tu stia lavorando con una variabile globale xmlhttp; trasformala in locale premettendo la parola var.

    Infine non ha alcun senso fare il setInterval così: chi ti dice che la richiesta sarà completata in 7 secondi?
    Meglio utilizzare il metodo setTimeout direttamente nella funzione xmlHttpChange.



  8. #8
    Ho provato rifare la funzione, sotto i tuoi consigli, ma non so se ho fatto giusto

    Codice PHP:
    <script type="text/javascript">

    function 
    loadXMLDoc(url)
    {
    xmlhttp = ;
    url "test_luogo.php";
    // codice per Mozilla, etc.
    if (window.XMLHttpRequest)
      {
      
    xmlhttp=new XMLHttpRequest()
      
    xmlhttp.open("GET",url,true)
      
    xmlhttp.send(null)
      
    xmlhttp.onreadystatechange=xmlhttpChange
      
      
    }
    // codice per  IExplore
    else if (window.ActiveXObject)
      {
      
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
        if (
    xmlhttp)
        {
        
    xmlhttp.open("GET",url,true)
        
    xmlhttp.send()
        
    xmlhttp.onreadystatechange=xmlhttpChange
        
        
        
    }
      }
    }

    setTimeout(function xmlhttpChange()
    {
    // if xmlhttp shows "loaded"
    if (xmlhttp.readyState==4)
      {
      
    // if "OK"
      
    if (xmlhttp.status==200)
        {
        
          
    document.getElementById('mio').innerHTML xmlhttp.responseText;

        }
      }
    },
    7000);
    </script> 
    Però non mi ricarica ogni 7 secondi il div, e per di più lo script non mi da nemmeno errori, quindi non so se ho fatto giusto :master:

    Questo codice lo devo usare per una chat, e in altri elementi che devono obbligatoriamente caricarsi ogni tot tempo.
    Con altri metodi diventa pesantino per il navigatore, e ne ho provati tanti, ecco l'idea del costrutto di ajax :berto:
    Ma non sono espertissimo del linguaggio, se era php me la sarei cavata meglio
    Puoi darmi una mano a settarlo come si deve?

  9. #9
    Codice PHP:
    <script type="text/javascript">

    function 
    loadXMLDoc(url)
    {
    var 
    xmlhttp=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");

      
    xmlhttp.open("GET",url,true)
      
    xmlhttp.send(null);
      
    xmlhttp.onreadystatechange=function() {
              
    // if xmlhttp shows "loaded"
             
    if (xmlhttp.readyState==4)
              {
               
    // if "OK"
               
    if (xmlhttp.status==200)
                  {
        
                    
    document.getElementById('mio').innerHTML xmlhttp.responseText;
                    
    setTimeout(function() {loadXMLDoc(url);}, 7000);

                  }
              }
      }
    }
    </script> 
    In tutta onesta l'ho buttata qui un pò alla c***o, cmq dovrebbe funzionare...
    In ogni caso basta fare una ricerca per trovare una funzione per tutte le esigenze.


  10. #10
    In tutta onesta l'ho buttata qui un pò alla c***o, cmq dovrebbe funzionare...
    Errori non da, a parte che non ricarica il div ogni 7 secondi, e cio che invece avrei bisogno, ho spostato il setTimeout al difuori dalla funzione stessa, ma anche così nulla, poi ho rimesso il setInterval, e li ha cominciato a caricare ogni 7 secondi, il problema e che duplica qualcosa, non più le immagini che ci sono già nella pagina, ma altro, come dei

    </p> che si susseguono facendo così scollare la pagina.

    sicuramente ce qualcosa da fare, cosniderato che lo fa solo con Firefox, mentre con IE no

    Proprio i casi sella programmazione, aiutooooooooooooooooooooo
    Ormai sono settimane che ci tento, e il cliente mi sta col fiato addosso, e ha ragione

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.