Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 31

Thread: [Ajax] Reload periodico di un elemento

  1. #16
    Lieutenant
    Join Date
    Jan 2007
    Location
    Roma
    Posts
    4.723

    Default

    Quote Originally Posted by San Vegeta View Post
    quello non è più polling, è pushing. Essendo l'http stateless, si crea lato server un canale dati sempre aperto (quindi vengono sempre prodotti dati) e lato client un parser dei dati ricevuti. Quando i dati sono sporchi, non fa nulla, quando i dati sono riconosciuti il client fa un'azione. E funziona con tutti i browser.
    Però ripeto, è pushing.
    Non funziona su internet 7 e inferiori (e penso anche su altri browser piu vecchi), perche il contenuto dellla risposta diventa disponibile solo quando è finita la richiesta e non mano a mano che arriva.

    Ok, però in questo modo se fosse un sito grosso ipotizziamo con centinaia di migliaia di client il server ce la fà a gestirli tutti ? O_o Vabbè che in questo caso un pò estremo, poi entrerebbe in gioco anche il clustering
    Ti posso rispondere lato Java perche quello conosco, al momento sta cosa è supportata solo in modo proprietario da alcuni server (tomcat, jboss e non ricordo se altri). Ma con le servlet 3.0 diventerà uno standard, ecco il primo link random che ho trovato : http://www.javaworld.com/javaworld/j...-servlet3.html
    Cmq fondamentalmente l'idea è di tenere aperta la connessione ma di liberare le risorse lato server finche non ce un update da mandare, mentre ora c'è un rapporto 1 a 1 tra connessione e risorsa (thread java in questo caso) in questo modo potenzialmente si possono gestire molti piu utenti contemporaneamente.
    Last edited by Amiag; 22nd August 2010 at 21:04.

    Last Exile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unknowns
    Nuida FollettoInLutto Bard Tiarna . . . . . . . . . . . . . . . . Deo The Undaunted Rune Priest
    Amiag Blademaster Silver Hand. . . . . . . . . . . . . . Viol The Sacrificed Shadow Warrior
    Viola Vampiir Grove Protector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Nero Incubus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DarkBane
    Naida Cabalist Phoenix Knight. . . . . . . . . . . . . . . . . . . . . . . . . . . . Viole No-Stealth Scout

  2. #17
    Lieutenant Commander San Vegeta's Avatar
    Join Date
    Oct 2003
    Location
    Bologna
    Posts
    12.154

    Default

    Quote Originally Posted by Amiag View Post
    Non funziona su internet 7 e inferiori (e penso anche su altri browser piu vecchi), perche il contenuto dellla risposta diventa disponibile solo quando è finita la richiesta e non mano a mano che arriva.
    allora avremo sbagliato qualcosa noi che ci funzionava anche con ie6
    I rubinetti a casa di Chuck Norris non perdono, vincono.

    In the beginning there was nothing...then Chuck Norris Roundhouse kicked that nothing in the face and said "Get a job". That is the story of the universe.

    Quote Originally Posted by Wolfo View Post
    Concordo e propongo ban temporanei per chi critica la topa , la topa non si critica , dal trombabile in su non si commenta in modo sgradevole.
    la tua ignoranza in materia e' raccapricciante
    -cit. Estrema, 2022

  3. #18
    Lieutenant
    Join Date
    Jan 2007
    Location
    Roma
    Posts
    4.723

    Default

    Quote Originally Posted by San Vegeta View Post
    allora avremo sbagliato qualcosa noi che ci funzionava anche con ie6
    Semplicemente avrete usato un Iframe o qualche altro metodo e non una richiesta xmlhttp... oppure N richieste

    Last Exile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unknowns
    Nuida FollettoInLutto Bard Tiarna . . . . . . . . . . . . . . . . Deo The Undaunted Rune Priest
    Amiag Blademaster Silver Hand. . . . . . . . . . . . . . Viol The Sacrificed Shadow Warrior
    Viola Vampiir Grove Protector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Nero Incubus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DarkBane
    Naida Cabalist Phoenix Knight. . . . . . . . . . . . . . . . . . . . . . . . . . . . Viole No-Stealth Scout

  4. #19
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Domanda in questo caso da profondo ignorante.
    Ho una tabella su cui ho inserito il listener in caso di click su un determinato pulsante, vorrei che la funzione mostri una nuova finestra con dei campi in cui l'utente possa operare.

    Per intenderci ho una tabella con un elenco di azioni, voglio che premendo sul pulsante "acquista" appaia questa nuova finestrella (tipo pop-up) in cui l'utente vada a scegliere la quantità) non ho però idea di come diavolo si chiamino questo genere di finestre.


  5. #20
    Lieutenant Commander San Vegeta's Avatar
    Join Date
    Oct 2003
    Location
    Bologna
    Posts
    12.154

    Default

    si chiamano popup -.-'

    ascolta, ma non pensi sia il caso di studiarsi un pochettino del dom html?
    I rubinetti a casa di Chuck Norris non perdono, vincono.

    In the beginning there was nothing...then Chuck Norris Roundhouse kicked that nothing in the face and said "Get a job". That is the story of the universe.

    Quote Originally Posted by Wolfo View Post
    Concordo e propongo ban temporanei per chi critica la topa , la topa non si critica , dal trombabile in su non si commenta in modo sgradevole.
    la tua ignoranza in materia e' raccapricciante
    -cit. Estrema, 2022

  6. #21
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    edit: risolto
    Last edited by Hardcore; 25th August 2010 at 11:58.


  7. #22
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Ok nuovo problema, questo particolare

    ho un tabella in con dei button , nel form html ho onclick='funzione()'

    stranamente, su Firefox non intercetta il primo click, e dopo funziona correttamente

    con opera invece funziona benissimo sin dal primo...

    qualcosa che mi sfugge sull'incompatibilità di firefox con onclick?

    inutile dirlo che ho tantissimi altri button e con questi va tutto alla perfezione con entrambi i browser


  8. #23
    Lieutenant
    Join Date
    Jan 2007
    Location
    Roma
    Posts
    4.723

    Default

    Quote Originally Posted by Hardcore View Post
    Ok nuovo problema, questo particolare
    ho un tabella in con dei button , nel form html ho onclick='funzione()'
    stranamente, su Firefox non intercetta il primo click, e dopo funziona correttamente
    con opera invece funziona benissimo sin dal primo...
    qualcosa che mi sfugge sull'incompatibilità di firefox con onclick?
    inutile dirlo che ho tantissimi altri button e con questi va tutto alla perfezione con entrambi i browser
    Probabilmente al primo click prende il focus per quello lo ignora.
    Cmq prova ad usare <input type="button"> invece che <button>

    Poi l'onclick dovrebbe stare a livello di button non a livello di form (non so se ho capito bene)

    Last Exile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unknowns
    Nuida FollettoInLutto Bard Tiarna . . . . . . . . . . . . . . . . Deo The Undaunted Rune Priest
    Amiag Blademaster Silver Hand. . . . . . . . . . . . . . Viol The Sacrificed Shadow Warrior
    Viola Vampiir Grove Protector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Nero Incubus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DarkBane
    Naida Cabalist Phoenix Knight. . . . . . . . . . . . . . . . . . . . . . . . . . . . Viole No-Stealth Scout

  9. #24
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Quote Originally Posted by Amiag View Post
    Probabilmente al primo click prende il focus per quello lo ignora.
    Cmq prova ad usare <input type="button"> invece che <button>

    Poi l'onclick dovrebbe stare a livello di button non a livello di form (non so se ho capito bene)
    ho tutti i pulsanti come <input type="button" onclick="funzione()">

    la cosa è strana in quanto se la funzione fa semplicemente alert("Premuto"), l'onclick funziona bene, se invece la funzione è piu complessa si perde il primo colpo


  10. #25
    Lieutenant Commander San Vegeta's Avatar
    Join Date
    Oct 2003
    Location
    Bologna
    Posts
    12.154

    Default

    siccome potrebbe essere tutto e niente, io punto sul javascript che alla prima botta becca un errore

    ovviamente senza codice stiamo a parlare di aria fresca
    I rubinetti a casa di Chuck Norris non perdono, vincono.

    In the beginning there was nothing...then Chuck Norris Roundhouse kicked that nothing in the face and said "Get a job". That is the story of the universe.

    Quote Originally Posted by Wolfo View Post
    Concordo e propongo ban temporanei per chi critica la topa , la topa non si critica , dal trombabile in su non si commenta in modo sgradevole.
    la tua ignoranza in materia e' raccapricciante
    -cit. Estrema, 2022

  11. #26
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Quote Originally Posted by San Vegeta View Post
    siccome potrebbe essere tutto e niente, io punto sul javascript che alla prima botta becca un errore

    ovviamente senza codice stiamo a parlare di aria fresca
    Stessa cosa che ho pensato io, ma se poi riclicco, va a eseguire la stessa funzione, e li va tutto bene , dal 2 click in poi è tutto ok


  12. #27
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Copio e incollo il codice perchè ci sto impazzendo sopra -.-

    ho
    Code:
    function get_xml_val(){
    var ID;
    var xmldoc;
    	xmlHttp1.open("GET", "prova.xml", true);
    		
    		xmlHttp1.onreadystatechange = function(){
    			//alert(xmlHttp1.readyState+"  "+ xmlHttp1.status);
    			if (xmlHttp1.readyState == 4 && xmlHttp1.status == 200) {
    				//alert(xmlHttp1.responseText);
    				xmldoc = xmlHttp1.responseXML; //Ottengo il file XML relativo //
    				//alert(xmldoc);
    				}
    		}
    	xmlHttp1.send(null);
    
    //-------Ottengo i valori dall'xml-----------//
    	ID=xmldoc.getElementsByTagName("ID");
    
    
    }
    Provato con firebug si ferma a ID=xmldoc.getElementsByTagName("ID"); segnandomi che xmldoc è undefined... se faccio ResponseText ho del codice xml, l'emeto xmldoc facendo uno step by step mi risulta come Document. eppure -.-

    Se da firebug, nello script faccio avanti passo passo , tutto funziona -.-
    Last edited by Hardcore; 26th August 2010 at 11:55.


  13. #28
    Lieutenant
    Join Date
    Jan 2007
    Location
    Roma
    Posts
    4.723

    Default

    Quando arrivi alla riga
    ID=xmldoc.getElementsByTagName("ID");
    la richiesta non è terminata e quindi xmldoc è ancora undefined

    Quando vai in debug funziona perche dai il tempo alla richiesta di completare prima di arrivare li

    Quella riga la devi mettere dentro l' onreadystatechange dove hai l'altra roba
    Last edited by Amiag; 26th August 2010 at 14:26.

    Last Exile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unknowns
    Nuida FollettoInLutto Bard Tiarna . . . . . . . . . . . . . . . . Deo The Undaunted Rune Priest
    Amiag Blademaster Silver Hand. . . . . . . . . . . . . . Viol The Sacrificed Shadow Warrior
    Viola Vampiir Grove Protector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Nero Incubus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DarkBane
    Naida Cabalist Phoenix Knight. . . . . . . . . . . . . . . . . . . . . . . . . . . . Viole No-Stealth Scout

  14. #29
    Lieutenant Commander San Vegeta's Avatar
    Join Date
    Oct 2003
    Location
    Bologna
    Posts
    12.154

    Default

    e poi ricorda che ID=xmldoc.getElementsByTagName("ID"); restituisce un array di elementi
    I rubinetti a casa di Chuck Norris non perdono, vincono.

    In the beginning there was nothing...then Chuck Norris Roundhouse kicked that nothing in the face and said "Get a job". That is the story of the universe.

    Quote Originally Posted by Wolfo View Post
    Concordo e propongo ban temporanei per chi critica la topa , la topa non si critica , dal trombabile in su non si commenta in modo sgradevole.
    la tua ignoranza in materia e' raccapricciante
    -cit. Estrema, 2022

  15. #30
    Ensign Hardcore's Avatar
    Join Date
    Sep 2006
    Location
    Modena
    Posts
    3.550

    Default

    Rieccomi, ora alle prese con l'arduo tentativo di rendere il mio codice compatibile con IE 8, cosa che non sta avvenendo come speravo. Il tutto funziona correttamente con Firefox,Opera,Chrome ecc, ma con IE non va un bel niente di niente, il problema che ho con la seguente funzione è lo stesso che ho con le altre analoghe, riporto questa per brevità

    Code:
    //--------Ricarica la tabella status generica ------------//
    function refresh_status(){
    	
    		
    		xmlHttp2.open("GET", "Php_status.php?Alfabeto="+ alfabeto, true);
    		//alert("Puppa");
    		xmlHttp2.onreadystatechange = function(){
    			//alert(xmlHttp.readyState);
    			if (xmlHttp2.readyState == 4 && xmlHttp2.status == 200) {
    			
    				var obj = document.getElementById("result");
    				var div_response=document.createElement("DIV");	
    				while(obj.hasChildNodes()){
    						obj.removeChild(obj.firstChild);
    				}
    	
    				div_response.innerHTML= xmlHttp2.responseText;
    	            obj.appendChild(div_response);
    						
    									
    			}
    			
    		}
    		xmlHttp2.send(null);
    			
    }
    La funzione deve fare le seguenti cose, chiedere l'esecuzione del file Php_status.php, passandogli il valore di alfabeto che altro non è che un gruppo di tre lettere (Es. ABC) con cui deve iniziare il nome di un Azione, (es. Alcatel,Benetton,Cremonini), la risposta del file php è la tabella in html contenente tutte le azioni e il loro valore, vi accedo tramite responseText.

    la funzione refresh status viene invocato ogni 2500ms,in firefox la tabella si aggiorna correttamente, in explorer invece esegue il primo load e basta, non effettua alcun reload. Temo che il problema sia nella gestione dell'innerHtml, ma non ne sono sicuro...


    edit: Ho trovato una soluzione scervellandomici sopra, ho scoperto che IE molto probabilmente mette in cache la risposta ottenuta dal server nelle pagine php e non va ad eseguire quindi un aggiornamento. ho inserito quindi il seguente codice

    Code:
    xmlHttp2.open("GET", "Php_status.php?Alfabeto="+ alfabeto+"&t=" + new Date().getTime(), true);
    avendo quindi il parametro t che cambia sempre e che è scartato in automtico dal server, facendo sembrare quindi di accedere ogni volta a un url differente.

    Con questo accrocchio tutto funziona, mi domando se è questo l'unico modo o esistono sistemi un po più raffinati..
    Last edited by Hardcore; 31st August 2010 at 16:39.


Page 2 of 3 FirstFirst 123 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 110.33 Kb. compressed to 94.58 Kb. by saving 15.74 Kb. (14.27%)]