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

    [AJAX-Javscript-PHP]come mai???

    ciao!!
    ieri ho provato a creare il mio primo script AJAX...
    la mia idea era di fare una chat, con una pagina con javascript che richiede e legge i dati forniti da una pagina php che non fa altro che andare a cercare nel database l'ultimo messaggio inserito...oppure invia, con GET, il messaggio da inserire nel database a una pagina php diversa.
    (questa è la mia prima prova con AJAX-->non ridete di me)
    per inserire i dati nel database la cosa non è molto complicata...
    il mio problema era richiamare la pagina php che legga e scriva l'ultimo messaggio presente nel database.
    io ho fatto un bellissimo timer, che parlte al caricamento della pagina, che ogni secondo fa questo:


    codice:
    var i=0;
    function getXMLHttp() {
    var xmlhttp = null;
    if (window.ActiveXObject) {
    if (navigator.userAgent.toLowerCase().indexOf("msie 5") != -1) {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    }
    if (!xmlhttp && typeof(XMLHttpRequest) != 'undefined') {
    xmlhttp = new XMLHttpRequest()
    }
    return xmlhttp
    }
    objHTTP = getXMLHttp();
    objHTTP.open("GET", "server.php?azione=aggiorna"+i, true);<--Problema
    objHTTP.onreadystatechange = function() {elaboraRisposta()}
    objHTTP.send(null);
    function elaboraRisposta() {
    if (objHTTP.readyState == 4) {
    	var risposta=objHTTP.responseTEXT;
    	if(risposta!=""){
    		document.getElementById('textarea').innerHTML=risposta;
    	}
    
    i=i+1;
    }
    }
    
    }
    dove ho scritto Problema stava il mio problema che ho risolto x sbaglio sbagliando riga
    inizialmente io inviavo i dati...me li inseriva nel database..ma non me li leggeva...
    invece andava se aprivo in una nuova finestra la pagina "server.php"...
    invece aggiungendo quello stupido aborto di contatore funziona
    perchè??

    inoltre avevo aggiunto una bellissima funzione disconnetti che troncava il timer in modo da fermare l'aggiornamento della chat...
    ma provando ho constatato che non funzionava
    allora mi è sorto il dubbio...ho sbagliato tutto???
    non ho capito nulla di ajax???e del modello asincrono??
    cioè che la richiesta la fai una volta e poi resta li e si aggiorna da sola senza fare timer & co??



    grazie!

    PS.
    questa è la mia prima prova con AJAX-->non prendetevela se ho scritto eresie...o se ho fatto/farò domande stupide

  2. #2
    è possibile che ogni ciclo rilegga la stessa pagina che ha in cache e non la richieda nuovamente???
    così si spiegerebbe perchè se metto lo stesso indirizzo ma con attaccato una variablie GET diversa funziona


    no???

    CHE ne dite???

  3. #3
    SIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIII!!!!!!!!!!

    [quote]C'è un secondo problema con IE in realtà, fa il caching delle richieste HTTP fatte in questo modo, dunque se sono effettuate utilizzando la stessa URL più volte, anche se lo script PHP richiamato produce diversi risultati, il risultato ottenuto sarà sempre lo stesso. Per evitare questo problema invece di richiedere qualcosa come script.php basta richiedere script.php?rand=numeroCasualie. In questo modo inganniamo IE facendogli credere che ogni volta si tratta di una richiesta diversa ed evitiamo il problema della cache. Per generare un numero casuale in Javascript si utilizza la funzione Math.random, dunque per evitare il problema della cache di IE tutto quello che dovremmo modificare nello script di sopra è la riga in cui la richiesta viene settata utilizzando il metodo open. Nello script originale usavamo:
    myRequest.open("GET","primo.php");

    Mentre sarebbe opportuno utilizzare:
    myRequest.open("GET","primo.php&rand="+escape(Math .random()));

    [quote]

    avevo ragione!!!
    allora SONO RIUSCITO A CREARE UNA CHAT IN AJAX!!!
    YUUU-UUUUUU!!!
    Pirip-Pirip-Pirip


  4. #4
    potrei avere lo script per studio?
    alessandro.nestola@gmail.com
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

  5. #5
    Non basta il random, devi anche settare degli headers.
    Usa librerie di terzi (o studiale) per saperne di piu'
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.