Visualizzazione risultati 1 fino 14 di 14

Discussione: ajax chat

  1. #1
    Guest

    Predefinito ajax chat

    ciao ragazzi potete darmi un aiuto dato che non sono tanto bravo con Ajax... in pratica il codice qui di seguito è una chat in tempo reale ma anche se sto da solo il msg ci mette tempo ad essere visualizzato.... cosa lo fa rallentare tanto????

    Codice PHP:

    ?>
    <!DOCTYPE>
    <html lang="en">
    <title>mycontact</title>
    <meta charset="utf-8"/>
    <head>
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />

    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <style>

    result{
    width: 500px;
    height: 400px;
    margin: 0 auto;
    border: 1px solid #ddd;
    border-radius: 7px;
    overflow-y: scroll;
    background: #333;
    color: #fff;
    }

    </style>
    <script>


    var auto_refresh = setInterval(
    function ()
    {
    $('#result').load('file.txt').fadeIn("fast");
    }, 10);


    $(function () {
    $('form').bind('click', function (event) {

    event.preventDefault();// using this page stop being refreshing
    var msg =$('#msg').val();
    var nickname = document.getElementById("user").innerHTML;

    var datastring = "nickname="+ nickname+"&msg="+msg ;

    if(msg==""){ $("#error").html("enter a text");
    $("#error"). hide(6000);} else {
    $.ajax({
    type: 'POST',
    url: 'send_post.php',
    data: datastring,
    success: function () {
    $("textarea").val("");
    }
    }); }
    });
    });



    </script>
    </head>
    <body>
    <div id="result" style="border:1px black solid;padding:auto;margin:auto;background-color:black;color:white;"></div>
    <br/>
    <footer>
    <form action="" method="post" align="center">
    <br/><div id="user"><? echo $mynick ; ?></div> <div id="error" display="none"></div>

    <textarea name="msg" id="msg" cols="100" rows="8" maxlength=20></textarea>
    <input id="submit" name="submit" type="submit">
    </form>
    </footer>

    </body>
    </html>
    PS: i messaggi vengono scritti su un file.txt e non inseriti su MySql....

  2. #2
    Guest

    Predefinito

    ci mette tempo ad essere visualizzato.... cosa lo fa rallentare tanto????
    Con "tempo" cosa intendi? Vedi il messaggio con 1/2 secondi di ritardo o con più secondi?
    Un minimo ci vuole comunque, l'http è veloce si, ma non istantaneo come un tcp/ip.

    Tieni conto poi che il file inizialmente potrebbe essere più veloce di un mysql, ma a lugno andare quando il file diventa grande si appesantisce sempre di più.

    Altra cosa, fare il refresh del file ogni 10ms secondo me appesantisce e basta il server, io allungherei il delay del refresh javascript a 100/200ms.

    Non hai postato il tuo file php con cui salvi il messaggio dentro il file di testo, quindi non sappiamo bene che operazioni fai per salvarlo, magari c'è un collo di bottiglia li? prova a postarlo ;) così ti possiamo aiutare meglio.

    ;) bye!

  3. #3
    Guest

    Predefinito

    Ma io non ho capito molto bene la logica, ovviamente non so neanche niente di chat, ma non capisco quel file text e reload continuo, caricando il tuo script ed aprendo firebux si vede che carica in loop sto file.txt, io farei una bella tabella in SQL che mostro in una pagina html con una select dal php, per intenderci apri la pagina ed hai la tua tabella, poi una semplice input di inserimento testo per la chat, farei una chiamata ajax ed inserisco il testo nella tabella, al click di invia ajax non fa altro che inserire il testo in tabella, i messaggi saranno tutti in tabella, al success della chiamata ajax non rimane altro che fargli fare un reload della pagina(location.replace(url) )...fatto il gioco, la tabella con i css la visualizzi come vuoi se vuoi i border se non li vuoi, quello che ti pare in poche parole...Ciao

    Ps:No ho detto una caxxata il location.replace non ricarica anche all'altro utente, quindi non basta solo il location replace ci vuole un setInterval, però farei sempre una tabella SQL...Ciao
    Ultima modifica di fractalcosmo : 30-04-2015 alle ore 20.46.48

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da pxy Visualizza messaggio
    Con "tempo" cosa intendi? Vedi il messaggio con 1/2 secondi di ritardo o con più secondi?
    Un minimo ci vuole comunque, l'http è veloce si, ma non istantaneo come un tcp/ip.

    Tieni conto poi che il file inizialmente potrebbe essere più veloce di un mysql, ma a lugno andare quando il file diventa grande si appesantisce sempre di più.

    Altra cosa, fare il refresh del file ogni 10ms secondo me appesantisce e basta il server, io allungherei il delay del refresh javascript a 100/200ms.

    Non hai postato il tuo file php con cui salvi il messaggio dentro il file di testo, quindi non sappiamo bene che operazioni fai per salvarlo, magari c'è un collo di bottiglia li? prova a postarlo ;) così ti possiamo aiutare meglio.

    ;) bye!
    allora :
    1)il msg impiega anche minuti per apparire nel div;
    2) si ho allungato il tempo per loadare i msg dal file.txt portandolo a 200ms ma resta tutto come prima;
    3) nel send_post.php c'è un semplicissimo $msg =$_POST['msg'];$a =file_get_contents(file.txt);$msg ="$a $msg"; file_put_contents(file.txt,$msg); (ovviamente non in questo modo ma penso ci siam capiti);

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    Ma io non ho capito molto bene la logica, ovviamente non so neanche niente di chat, ma non capisco quel file text e reload continuo, caricando il tuo script ed aprendo firebux si vede che carica in loop sto file.txt, io farei una bella tabella in SQL che mostro in una pagina html con una select dal php, per intenderci apri la pagina ed hai la tua tabella, poi una semplice input di inserimento testo per la chat, farei una chiamata ajax ed inserisco il testo nella tabella, al click di invia ajax non fa altro che inserire il testo in tabella, i messaggi saranno tutti in tabella, al success della chiamata ajax non rimane altro che fargli fare un reload della pagina(location.replace(url) )...fatto il gioco, la tabella con i css la visualizzi come vuoi se vuoi i border se non li vuoi, quello che ti pare in poche parole...Ciao

    Ps:No ho detto una caxxata il location.replace non ricarica anche all'altro utente, quindi non basta solo il location replace ci vuole un setInterval, però farei sempre una tabella SQL...Ciao
    ho preferito il file.txt perche ho gia utilizzato MySql per la maggior parte del sito (messaggi privati,bacheca,etc) siccome qui le query sono limitate almeno la chatroom non volevo che mi abbandonasse sul piu bello :) pero ho notato che ultimamente il sito va lento anche se si tratta semplicemente di passare da una pagina all'altra.... pero nel cpanel il traffico mi segna sempre zero :S

  6. #6
    Guest

    Predefinito

    Ciao, se parliamo del tuonome.altervista.org, ho dato un'occhiata e noto che ci sono diversi errori di fancybox ed altre funzioni javascript, non so se usi firebug per mozilla, se non lo usi installalo, è un plugin di mozilla e debugga tranquillamente tutto il javascript che carichi all'interno del sito, è molto utile per sviluppare sul web, fai un debug e il mio consiglio è di correggere intanto questi errori(non usare IE11 con debug perchè tanto si pianta ogni tre per due :), una volta che hai sviluppato lo testi con altri browser)...Per la chat ci sono comunque tanti esempi sul web dove poter trarre spunto...Ciauuu

  7. #7
    mycontact non è connesso Neofita
    Data registrazione
    18-03-2013
    Messaggi
    9

    Predefinito

    ciao sono sempre sharefiles e il sito in questione è questo dove sto scrivendo... in pratica come devo fare x installarlo...??? scusami x l'ignoranza ma di solito uso altri hosting x i miei progetti :S
    Ps: uso sempre vari browser x testare gli script ma in questo caso la situazione non cambia... non é che devo inserirci un header() specifico???
    Ultima modifica di mycontact : 02-05-2015 alle ore 07.24.09

  8. #8
    Guest

    Predefinito

    Cerca "firebug firefox" in google, il primo sito che ti esce è quello del plugin, una volta installato con f12 (usando ovviamente firefox) lo attivi ed hai la possibilità di vedere l'HTML della pagina i CSS e soprattutto i javascript e se ci sono degli errori javascript, nella console a destra hai l'opportunità di inserire codice javascript al dom ready e testarlo direttamente nella pagina, ovviamente non puoi vedere il php(essendo un linguaggio lato server) però puoi vedere le chiamate fatte da ajax e la risposta della chiamata, è un ottimo strumento per debuggare soprattutto il lato client, dal tuo sito vedo che c'è una pagina login.php dove hai inserito anche del javascript, il mio consiglio è quello di inserire solamente un link del file javascript e tenere divisi i file html php e JS, firebug include anche il js dentro all'html e lo puoi vedere però non lo riconosce se lo cerchi dall'elenco degli script, una volta installato capirai quello che intendo, puoi mettere punti di controllo e debuggare e vedere passo passo cosa succede nel codice javascript, ad oggi dice $.validator is undefined....login.php riga 142....Ciao
    Ps:però non credo che il tempo di risposta sia dovuto a quell'errore, devi vedere bene i passaggi e comunque dividi i file, un progetto con i file divisi è sempre un miglior progetto... ;) Buona serata alla prox...

  9. #9
    Guest

    Predefinito

    ok grazie x l'aiuto :)

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Ma in realtà Firebug non è più così necessario, Firefox integra ormai da tempo strumenti per gli sviluppatori direttamente nel browser che forniscono anche alcune funzioni in più rispetto a Firebug.

  11. #11
    Guest

    Predefinito

    Ciao Karl, puoi essere più specifico, perchè l'argomento mi interessa, in che senso Firefox integra funzionalità di debug, io uso il 37 adesso ma non trovo funzionalità di debug per javascript, dove le trovo?O anche le chiamate Ajax cioè i file che carica alla chiamata Ajax, a me interessa l'argomento se hai delle dritte sono ben accette, a me serve uno strumento che ad ogni click al richiamo della funzione javascript entra dentro la funzione debugga valorizza fa lo stack di chiamate etc...e vede soprattutto che file chiama e la risposta del php, purtroppo ho a che fare con progetti che hanno 500 file all'interno e se non vedessi le chiamate e non debuggo al dom ready sarebbe un macello capire punto punto dove passa il parse e come si comporta il Dom, firebug ti dice tutti gli oggetti presenti nel Dom, gli oggetti costruiti lato client etc..etc.......Io al lavoro uso firebug non conosco altri metodi integrati in firefox con le stesse potenzialità di firebug o firePHp o altri ...Consigli?

    Ps:Cioè dici da strumenti Sviluppo web?quelli?quelli li conosco....però mi trovo meglio con firebug a dire il vero...
    Ultima modifica di fractalcosmo : 05-05-2015 alle ore 01.47.14

  12. #12
    Guest

    Predefinito

    Ariciao, si ho dato un'occhiata, ehh però non hai il Dom e tutti gli oggetti creati a vista d'occhio e con click all'apertura, non ci sono i cookie, non è proprio veloce come firebug, con firebug metti un punto di controllo e passando con il mouse automaticamente valorizza tutti i valori e gli array invece con strumenti devi mettere punto di controllo cliccare sulla variabile o sull'array e ti apre la decrizione, si io consiglio firebug se si vuole andar più veloci e comodi.... ;)Firebug diciamo che è più professionale come analisi è più completa, apri un javascript ed hai a sinistra il code a destra gli oggetti dom, tutto è valorizzato e analizzato passo passo,è più immediato e completo a mio avviso. Almeno io mi trovo bene altri strumenti veloci e completi come firebug non ne conosco, ovviamente il debug integrato di IE11 non lo prendo in considerazione è una pippa di debug :)) ma i consigli sono sempre ben accetti...Non si finisce mai di imparare...Ciao Notte
    Ultima modifica di fractalcosmo : 05-05-2015 alle ore 02.12.24

  13. #13
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    Ariciao, si ho dato un'occhiata, ehh però non hai il Dom e tutti gli oggetti creati a vista d'occhio e con click all'apertura
    Basta andare nella Console e scrivere un espressione JavaScript. Se in questo modo è facilmente possi ispezionare l'oggetto Window o Document
    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    , non ci sono i cookie
    Ci sono, la scheda relativa non è visibile subito, la puoi attivare dalle impostazioni (icona con il simbolo di ingranaggio)
    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    , non è proprio veloce come firebug, con firebug metti un punto di controllo e passando con il mouse automaticamente valorizza tutti i valori e gli array invece con strumenti devi mettere punto di controllo cliccare sulla variabile o sull'array e ti apre la decrizione
    A me pare funzioni anche al passaggio del mouse. Comunque se vuoi ispezionare una variabile o altre espressioni c'è sempre il pannello a destra.
    Citazione Originalmente inviato da fractalcosmo Visualizza messaggio
    , si io consiglio firebug se si vuole andar più veloci e comodi.... ;)Firebug diciamo che è più professionale come analisi è più completa, apri un javascript ed hai a sinistra il code a destra gli oggetti dom, tutto è valorizzato e analizzato passo passo,è più immediato e completo a mio avviso. Almeno io mi trovo bene altri strumenti veloci e completi come firebug non ne conosco, ovviamente il debug integrato di IE11 non lo prendo in considerazione è una pippa di debug :)) ma i consigli sono sempre ben accetti...Non si finisce mai di imparare...Ciao Notte
    Il debugger migliore a mio avviso è quello disponibile su Chrome.

  14. #14
    Guest

    Predefinito

    Ciao Karl, eh io non posso usare Chrome, dobbiamo attenerci al browser del cliente(che è IE) ma dato che IE fa schifio usiamo tutti firefox con firebug, poi in fase di test ovviamente si testa con il browser obbligatorio, comunque ho provato a fare un paragone, non è proprio uguale, perchè firebug ti evidenzia in elenco i parametri in GET e i valori passati, quello integrato da firefox ti fa vedere la chiamata ma non ti elenca i parametri, te li mette solo nell'url del GET(sono meno visibili)ho anche visto che non ti da risposta della chiamata o meglio ti da l'html come risposta non i print....Noi usiamo tutti firebug qui ormai siamo abituati con quello...Ciao buon pomeriggio

Regole di scrittura

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