Visualizzazione risultati 1 fino 10 di 10

Discussione: [AJAX] compatibilità e funzionamento FF e IE

  1. #1
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito [AJAX] compatibilità e funzionamento FF e IE

    salve,
    sto usando per la prima volta AJAX nel mio sito. Ho creato uno script per la visualizzazione dei COMMENTI di alcune foto. Con una funziona appositamente scritta, trovata da una guida in rete, richiamo una pagina PHP che prende dal database tutti i dati.
    Con FF funziona benissimo, mentre con IE è un problema:
    1. Per caricare la pagina con ajax ci mette un sacco di tempo. Resta fermo almeno una decina di secondi sullo READYSTATE 2
    2. una volta caricata, se riclicco sullo stesso link, mi esce subito la pagina richiesta, ma senza gli eventuali aggiornamenti, è come se ricordasse che quella pagina è già stata aperta e non mi ricarica i dati. In pratica non funziona AJAX. Come mai?
    Chi troppo vuole....vuole LionAlex...

  2. #2
    Guest

    Predefinito

    Fai una bella cosa, usa jquery che ha anche il corredo per ajax con il massimo della compatibilità.

    http://jquery.com/

    http://docs.jquery.com/Ajax

  3. #3
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da lionalex Visualizza messaggio
    salve,
    2. una volta caricata, se riclicco sullo stesso link, mi esce subito la pagina richiesta, ma senza gli eventuali aggiornamenti, è come se ricordasse che quella pagina è già stata aperta e non mi ricarica i dati. In pratica non funziona AJAX. Come mai?
    E' probabile che ti visualizzi la pagina in cache. Per ovviare dovresti fare in modo che ad ogni richiesta via Ajax venga inserito una chiave con valore casuale nell'URL: per esempio prima index.php?chiave=12345 poi index.php?chiave=456789 e così via. In questo modo il browser vede indirizzi diversi e non usa la cache.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  4. #4
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    Ringrazio per l'interesse, ma penso che userò la soluzione indicatami da "saitfainder" dato che non ho molta voglia di imparare un qualcosa che già è stato creato, vorrei creare io qualcosina partendo dalla base, cioè dall'AJAX puro

    Grazie lo stesso "svacant"...

    Ora ho risolto, anche se un po' in modo arrangiato, il problema del reload della stessa pagina, però non capisco perchè con IE il caricamento è molto più lento...Preciso che se chiudo la connessione dell'open DOPO il SEND, con IE va molto meglio, però non so se è corretto fare una cosa del genere dato che nelle guide che ho letto io, la connessione con
    Codice:
    ajax.setRequestHeader("connection", "close");
    viene chiusa sempre prima del SEND.
    Chi mi sa spiegare meglio il tutto?
    Chi troppo vuole....vuole LionAlex...

  5. #5
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Nella mia libreria Ajax, per ovviare al problema di IE che tiene aperta la connessione per chissà quale motivo, al termine della ricezione dati faccio un bel:

    Codice:
    ajax.abort();
    Non so se è il modo giusto, ma sembra funzionare


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  6. #6
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    scusa l'ignoranza , ma a che serve questa funzione che hai detto ??
    Codice:
    ajax.abort();
    Dove dovrebbe essere messa??? Dopo il send???
    Chi troppo vuole....vuole LionAlex...

  7. #7
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Uccide la connessione. La potresti posizionare in fondo alla funzione che hai assegnato ad 'onreadystatechange'.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  8. #8
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    quindi se la mia funzione è questa
    Codice:
    ajax.onreadystatechange = function() {
    		  
    			if(ajax.readyState === readyState.COMPLETATO) {
    				
    			}
    			else{
            if (ajax.readyState === readyState.INIZIALIZZATO){
              testo="Inizio caricamento";
            }
            if (ajax.readyState === readyState.RICHIESTA){
              testo="Invio dati";
            }
            if (ajax.readyState === readyState.RISPOSTA){
              testo="Ci siamo quasi";
            }
            
          }
    			
    }
    ajax.send(NULL);
    L'abort devo metterlo prima della chiusura della funzione o prima del send a funzione chiusa???
    Chi troppo vuole....vuole LionAlex...

  9. #9
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Codice:
    ajax.onreadystatechange = function() {
    		  
    			if(ajax.readyState === readyState.COMPLETATO) {
    				
    			}
    			else{
            if (ajax.readyState === readyState.INIZIALIZZATO){
              testo="Inizio caricamento";
            }
            if (ajax.readyState === readyState.RICHIESTA){
              testo="Invio dati";
            }
            if (ajax.readyState === readyState.RISPOSTA){
              testo="Ci siamo quasi";
            }
            
          }
    
        ajax.abort() /*  <<<----  QUI */			
    
    }
    ajax.send(NULL);


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  10. #10
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    grazie per il consiglio, ma inserendo l'ajax.abort è peggio di prima...si blocca tutto sul primo readystate...
    Chi troppo vuole....vuole LionAlex...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •