tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von sheel
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
280
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    CHTMLVBFeli CHTMLVBFeli ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    51
    Liebe Leute,
    Ich programmiere einen Chat.
    Bisher muss alle 5 Sekunden neu geladen werden.
    Geht das auch ohne neu laden?
    Also abfragen, ob ein neuer Eintrag in der Datenbank vorhanden ist und den dann ausgeben.
    Vielen Dank im Voraus!
    Liebe Grüße
    CHTMLVBFeli
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    Hi

    mit Ajax kann man nur die Nachrichten laden, ohne den Rest der Seite.
    CHTMLVBFeli bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    CHTMLVBFeli CHTMLVBFeli ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    51
    Und wie mach ich das?
     

  4. #4
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Hallo CHTMLVBFeli,

    am einfachsten schickst du alle 5 Sekunden per AJAX (bzw. JavaScript) eine Anfrage an dein PHP-Skript.

    Dann gäbe es noch die Möglichkeit, dass du Push-Nachrichten verschickst über Websockets. Also dass dein JavaScript keine Anfrage schickt, sondern Daten bekommt, wenn es neue Nachrichten gibt.

    Einfaches AJAX-Beispiel:
    Code javascript:
    1
    2
    3
    4
    5
    6
    7
    8
    
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function()
    {
      if (xhr.readyState==4)
        alert(xhr.responseText);
    }
    xhr.open("GET", "myscript.php?question=newMessages");
    xhr.send(null);
    Dies schickt eine Anfrage an myscript.php mit dem GET-Parameter question und gibt bei Erhalt einer Antwort diese auch aus.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  5. #5
    CHTMLVBFeli CHTMLVBFeli ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    51
    Hat jemand nen Code dafür oder einen Link?
    Liebe Grüße
    CHTMLVBFeli
     

  6. #6
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Siehe mein Beispiel in Post 4.

    Bei deiner Applikation würde ich dann noch einen Parameter namens lastMsgDate, in dem das Datum der letzten Nachricht steht, hinzufügen. So kann dein PHP-Skript nur die Nachrichten seit diesem Datum abrufen zu zurückgeben.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  7. #7
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    Hat ComFreek doch gerade gepostet

    PHP-Seitig sollte es für dich ja kein Problem sein, wenn du es bis jetzt mit Neuladen geschafft hast.

    edit: Weil die Zeit lokal/Server unterschiedlich sein kann, würde ich die Serverzeit
    bei einer Anfrage mitgeben, zum Zwischenspeichern mit JS.
    Und wenn wer den Chat erst aufmacht, hat er noch keine Zeit
    und bekommt zB. die letzten 10 Nachrichten.

    edit2: Wenn wer ein Datum schcikt, das weit in der Vergangenheit liegt,
    sollte es auch eine Obergrenze geben, zB. dass er nur die letzten 50 Nachrichten bekommt.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

Ähnliche Themen

  1. Reload wenn neuer DB Eintrag
    Von artisya im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 30.09.07, 04:21
  2. Textfeld: autom. Scrollen, wenn neuer Eintrag
    Von WilliamSpiderWeb im Forum VisualStudio & MFC
    Antworten: 4
    Letzter Beitrag: 12.06.06, 12:29
  3. wenn Eintrag neuer als einer Stunde...
    Von ArFiBa im Forum PHP
    Antworten: 11
    Letzter Beitrag: 03.07.05, 12:46
  4. Antworten: 2
    Letzter Beitrag: 19.03.04, 23:50
  5. pop up sobald neuer eintrag in datenbank
    Von lowtide im Forum PHP
    Antworten: 3
    Letzter Beitrag: 22.08.03, 17:28

Stichworte