Dr. Web Logo. Untertext: Seit 1997.
  • Beste Agenturen
  • Agentur-Standorte von A bis Z 🌇
  • Magazin
  • Newsletter 📩
  • Login
  • Agentur bewerben ✅
  • Kontakt
  • Werben 🎉
  • Sponsored Post
  • Jobs
Menü
  • Beste Agenturen
  • Agentur-Standorte von A bis Z 🌇
  • Magazin
  • Newsletter 📩
  • Login
  • Agentur bewerben ✅
  • Kontakt
  • Werben 🎉
  • Sponsored Post
  • Jobs
  • Werben
  • Gastbeitrag
  • Sponsored Post
  • Kontakt
  • Login
  • Newsletter
Suche
  • Beste Agenturen
  • Agentur-Standorte
      Beste Agenturen Augsburg Altstadt von oben.

      Augsburg

      Blick auf die Mittlere Brücke in Basel bei Sonnenaufgang.

      Basel

      Berlin bei Nacht, Blick von oben Richtung Fernsehturm.

      Berlin

      Das Ruhrstadion in Bochum von oben, bei Sonnenuntergang.

      Bochum

      Bonn von oben, mit Blick auf den Rhein.

      Bonn

      Blick auf die Uferpromenade in Bremen bei Sonnenuntergang..

      Bremen

      Dortmund von oben Panoramafoto.

      Dortmund

      Blick auf die Elbufer-Promenade Dresdens sowie Frauenkirche und Zwinger.

      Dresden

      Duisburg Innenhafen bei Sonnenuntergang.

      Duisburg

      Düsseldorf von oben mit Blick auf den Fernsehturm.

      Düsseldorf

      Die Skyline von Essen von oben.

      Essen

      Blick von oben auf das Bankenviertel in Frankfurt am Main.

      Frankfurt am Main

      Freiburg Innenstadt vom Münster aus fotografiert mit Blick Richtung Schlossberg und Sonnenuntergang..

      Freiburg im Breisgau

      Hamburg bei Nacht, Blick auf die Speicherstadt.

      Hamburg

      Blick auf das Neue Rathaus, Hannover.

      Hannover

      Agenturen in Innsbruck von oben mit Blick auf die Alpen.

      Innsbruck

      Karlsruhe von oben

      Karlsruhe

      Sonnenuntergang in Köln mit Blick auf den Dom. Im Vordergrund die Hohenzollernbrücke.

      Köln

      Leipzig Innenstadt bei Sonnenuntergang und von oben.

      Leipzig

      München bei Fön mit Blick in die bayerischen Alpen.

      München

      Nürnberg Altstadt Stadtmauer von oben

      Nürnberg

      Blick auf das Flussufer der Innenstadt von Regensburg bei Nacht.

      Regensburg

      Agenturen Salzburg: Blick auf die Altstadt und die Hohensalzburg.

      Salzburg

      Stuttgart von oben.

      Stuttgart

      Wien von oben. Blick auf den Stephansdom.

      Wien

      Zürich von oben.

      Zürich

  • Magazin
    • Content Marketing
    • CSS
    • E-Commerce
    • E-Mail-Marketing
    • Freelancer
    • Fotografie
    • HTML
    • Online-Marketing
    • Responsive Design
    • SEO
    • UX Design
    • Webdesign
    • Website erstellen
    • WordPress
    • Dr. Web Autoren
  • Jobs
Menü
  • Magazin
    • Content Marketing
    • CSS
    • E-Commerce
    • E-Mail-Marketing
    • Freelancer
    • Fotografie
    • HTML
    • Online-Marketing
    • Responsive Design
    • SEO
    • UX Design
    • Webdesign
    • Website erstellen
    • WordPress
    • Dr. Web Autoren
  • Jobs
Agentur eintragen →
Dr. Web Logo. Untertext: Seit 1997.
  • Beste Agenturen
  • Agentur-Standorte
      Beste Agenturen Augsburg Altstadt von oben.

      Augsburg

      Blick auf die Mittlere Brücke in Basel bei Sonnenaufgang.

      Basel

      Berlin bei Nacht, Blick von oben Richtung Fernsehturm.

      Berlin

      Das Ruhrstadion in Bochum von oben, bei Sonnenuntergang.

      Bochum

      Bonn von oben, mit Blick auf den Rhein.

      Bonn

      Blick auf die Uferpromenade in Bremen bei Sonnenuntergang..

      Bremen

      Dortmund von oben Panoramafoto.

      Dortmund

      Blick auf die Elbufer-Promenade Dresdens sowie Frauenkirche und Zwinger.

      Dresden

      Duisburg Innenhafen bei Sonnenuntergang.

      Duisburg

      Düsseldorf von oben mit Blick auf den Fernsehturm.

      Düsseldorf

      Die Skyline von Essen von oben.

      Essen

      Blick von oben auf das Bankenviertel in Frankfurt am Main.

      Frankfurt am Main

      Freiburg Innenstadt vom Münster aus fotografiert mit Blick Richtung Schlossberg und Sonnenuntergang..

      Freiburg im Breisgau

      Hamburg bei Nacht, Blick auf die Speicherstadt.

      Hamburg

      Blick auf das Neue Rathaus, Hannover.

      Hannover

      Agenturen in Innsbruck von oben mit Blick auf die Alpen.

      Innsbruck

      Karlsruhe von oben

      Karlsruhe

      Sonnenuntergang in Köln mit Blick auf den Dom. Im Vordergrund die Hohenzollernbrücke.

      Köln

      Leipzig Innenstadt bei Sonnenuntergang und von oben.

      Leipzig

      München bei Fön mit Blick in die bayerischen Alpen.

      München

      Nürnberg Altstadt Stadtmauer von oben

      Nürnberg

      Blick auf das Flussufer der Innenstadt von Regensburg bei Nacht.

      Regensburg

      Agenturen Salzburg: Blick auf die Altstadt und die Hohensalzburg.

      Salzburg

      Stuttgart von oben.

      Stuttgart

      Wien von oben. Blick auf den Stephansdom.

      Wien

      Zürich von oben.

      Zürich

Agentur eintragen →
Dr. Web » Webdesign » AJAX in der Praxis: Ein einfacher Chat

AJAX in der Praxis: Ein einfacher Chat

Ein Online-Chat braucht beispielsweise Java. Mit der Integration verschiedener Techniken in AJAX ist es jedoch möglich, einen einfachen Onlinechat auf schnelle Weise in eine gewöhnliche Webseite zu integrieren. Ein schlichter Onlinechat ist eigentlich schwierig...

Sozial sein
Share on facebook
Share on twitter
Share on linkedin
Share on xing
Share on whatsapp
Share on email
  • 7 Kommentare
Lesedauer: 7 Minuten
  • von Thiemo Fetzer
  • 19. September 2005
Bookmarke mich
Share on pocket

Philipp Pistis - WordPress Agentur

NETZhelfer GmbH

CAF Webdesign Agentur

ARIT Services GmbH

BIZ Digital Marketing

aeosys

Ein Online-Chat braucht beispielsweise Java. Mit der Integration verschiedener Techniken in AJAX ist es jedoch möglich, einen einfachen Onlinechat auf schnelle Weise in eine gewöhnliche Webseite zu integrieren.

Ein schlichter Onlinechat ist eigentlich schwierig zu realisieren, da die neu eingegangenen Messages stets vom Server geladen werden müssen. Dies bedeutete bisher, dass die Seite neu geladen werden musste. Um dies zu umgehen, hat man auf andere Möglichkeiten gesetzt, wie zum Beispiel JavaApplets. Mit AJAX wird die Sache erleichtert, da man die Seiten nicht mehr neu im Browser laden muss. Die periodische Überprüfung nach neuen Messages kann über JavaScript und XMLHttpRequests mit der setTimeOut-Funktion gesteuert werden.

Hört sich einfach an – ist es im Grunde auch so. Bei Dr.Web wurde bereits einmal von mir ein Skript vorgestellt, mit dem auf einfache Art eine Shoutbox programmiert wurde. Dieses Skript soll nun Schritt-für-Schritt AJAX tauglich gemacht werden und zu einem Chat umfunktioniert werden.

Im Internet gibt es bereits OpenSource-AJAX-Chat-Anwendungen, zum Beispiel Lace und Treehouse. Unser Beispiel wurde entwickelt, um im Rahmen dieser Artikelserie AJAX näher zu bringen. Das Beispiel weist längst nicht alle Features auf, die möglich wären, ist so aber besser verständlich.

Rollen wir das Feld von hinten auf und beginnen wir mit dem so genannten Server Backend. In unserem Fall ist das eine MySQL Datenbank. Für unsere kleine Anwendung verwenden wir eine Tabelle Namens „ajaxChat“, welche die Felder id, name, nachricht und date hat; diese kann mit folgender SQL-Anweisung erzeugt werden:

  CREATE TABLE `ajaxChat` (
    `id` LONGINT NOT NULL AUTO_INCREMENT ,
    `name` VARCHAR( 60 ) NOT NULL ,
    `nachricht` VARCHAR( 120 ) NOT NULL ,
    `date` VARCHAR( 30 ) NOT NULL ,
    PRIMARY KEY ( `id` )
    );

Screenshot

Zunächst wird das Backend angegangen; zum einen die Datenbank, zum anderen das PHP-Skript, welches die XML-Antworten auf die http-Anfragen erzeugt.

Das PHP-Skript (nennen wir es ajaxchat.php) auf der Serverseite muss folgende Funktionalitäten aufweisen:

  • Verbindung zur Datenbank öffnen und schließen.
  • Nneue Einträge müssen in die Datenbank eingefügt werden können.
  • Neue Einträge müssen abgeholt werden können; als Erkennung dient eine eindeutige ID.

Die Ausgabe der Daten, das heißt die asynchrone Antwort des Servers erfolgt über XML; dieses wird dann über JavaScript und CSS im Browser dargestellt.

Die Datenbankverbindung kann über folgenden Zeilen-Code geöffnet werden; die Variablen müssen an die jeweilige Serverumgebung angepasst werden.

       <?php
    //wichtig; damit nicht gecached wird!
    header( "Cache-Control: no-cache, must-revalidate" );
    header( "Pragma: no-cache" );
    //damit unser JavaScript die Daten auch als XML erkennt
    header("Content-Type: text/xml");

    $db_host = "localhost"; // Host
    $db_user = "root"; // User
    $db_password = ""; // Passwort
    $db_name = "test"; // Datenbank

    mysql_connect($db_host,$db_user,$db_password) or die(mysql_error());
    mysql_select_db($db_name) or die(mysql_error()); 

Nachrichten auslesen
Die Funktion, mit der stets die aktuellsten Nachrichten aus der Datenbank extrahiert werden:

      function getLatestEntries($latestID) {

    $query = "SELECT id, name, nachricht, date FROM ajaxchat WHERE id > $latestID
    ORDER BY id DESC LIMIT 20";
    $erg = mysql_query($query);
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
    echo "<messages>";
    while($erg2=mysql_fetch_array($erg)) //Erzeugung der XML Ausgabe
    {
    echo "<message><id>".$erg2['id'];
    echo "</id><name>".$erg2['name'];
    echo "</name><nachricht>".$erg2['nachricht'];
    //Formatierung des Timestamps
    echo "</nachricht><date>".date("d.m.Y H:i",$erg2['date']);
    echo "</date></message>";
    }
    echo "</messages>";
    }

Bei dieser Funktion kommt es insbesondere auf die SQL-Abfrage an; über die Bedingung id > $latestID, werden lediglich die Einträge ermittelt, deren ID größer (d.h. deren Einträge „frischer“ sind), ermittelt. Die Variable latestID wird, wie wir weiter unten sehen werden, bei dem http Requests über JavaScript übergeben.

Durch den Zusatz ORDER BY id DESC in der SQL Abfrage wird sichergestellt, dass die Einträge absteigend ausgegeben werden; LIMIT 20 beschränkt die Ausgabe auf die letzten zwanzig Einträge. Die Erzeugung des XML-Codes erfolgt schlicht über die echo-Funktion (eine Verwendung der DOMXML Funktionen von PHP wäre bei dem geringen Aufwand nicht gerechtfertigt).

Neue Einträge
Das erzeugen von neuen Einträgen in die Tabelle erfolgt über folgende Funktion:

      function createNewEntry($name, $nachricht) {

    //HTML Tags entfernen
    $name = strip_tags($name, '');
    $nachricht = strip_tags($nachricht,''); 

    $query = "INSERT INTO ajaxchat(name, nachricht, date)
    VALUES ('$name','$nachricht','".time()."')";
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
    if (!mysql_query($query)) {
    //nicht notwendig, dient nur der Fehlerkontrolle
    echo "<createNewEntry>0</createNewEntry>";}
    else {
    echo "<createNewEntry>1</createNewEntry>";
    }
    }

Dabei erzeugt die Funktion createNewEntry wiederum eine XML-Antwort; dieser schenken wir aber keine Beachtung. Sie wurde lediglich zur Fehlerüberprüfung implementiert, so dass man über JavaScript, falls es einen MySQL-Fehler beim Erzeugen eines neuen Eintrag gäbe, dies entsprechend im Browser anzeigen könnte – wenn man denn wollte.

Skriptsteuerung
Da alle Anfragen an ein und dasselbe Skript geschickt werden (ajaxchat.php), benötigen wir noch ein paar Zeilen-Code, mit denen sichergestellt wird, dass bei den Aufrufen auch die jeweils angesprochene Funktion ausgeführt wird. Wir arbeiten hierbei mit Parametern, die in die http Anfragen über das XMLHttpRequest Objekt eingebaut sind.

      //falls action=createNewEntry, Erzeugung eines neuen Eintrages
    if ($_GET['action'] == "createNewEntry") {
    createNewEntry($_GET['name'], $_GET['nachricht']);
    }
    //falls action=getLatestEntries, Ausgabe der neuesten Einträge
    elseif ($_GET['action'] == "getLatestEntries") {
    getLatestEntries($_GET['latestID']);
    }
    mysql_close(); //schließen der PHP Verbindung
    ?>

Die AJAX Engine

Screenshot

Im zweiten Schritt wird die AJAX-Engine aufgebaut; mit ihr werden die http-Anfragen erzeugt und die Ergebnisse im Browser dargestellt

Die AJAX-Engine hat folgende Aufgaben:

  • Erzeugung der http-Anfragen um neue Nachrichten vom Server zu erfragen-
  • Erzeugung der http-Anfragen, über die neue Einträge in der Datenbank gespeichert werden.

Da später das Empfangen von Daten automatisiert wird beziehungsweise über die setTimeOut-Funktion gesteuert wird, ist es notwendig, dass wir für unsere Anwendung zwei XMLHttpRequest-Objekte erzeugen. Damit wird sichergestellt, dass man gleichzeitig sowohl Daten empfangen als auch senden kann.

Erzeugung zweier XMLHttpRequest-Objekte
Das JavaScript zur Erzeugung der XMLHttpRequest-Objekte ist identisch mit dem aus Teil 2 dieser Artikelserie:

       <script type="text/javascript">
    var latestID = 0; //latestID als globale Variable; wichtig!

    function createXMLHttpReqObj() { //erzeugt die XMLHttpRequest Objekte

    // für Mozilla etc.
    if(window.XMLHttpRequest) {
    try { //Fehler abfangen
    req = new XMLHttpRequest();
    } catch(e) {
    req = false;
    }
    // für den InternetExplorer
    } else if(window.ActiveXObject) {
    try {
    req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
    try {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
    req = false;
    }
    }
    }
    return req;
    }
    // Initialisierung der beiden Objekte
    var httpGetLatestEntries= createXMLHttpReqObj();
    var httpCreateNewEntry = createXMLHttpReqObj();

Neueste Einträge abfragen
Bei der Abfrage nach den neuesten Einträgen wird die LatestID in der http-Anfrage mit übergeben. Diese ist eine globale Javascript-Variable, da ihr Wert aus Funktionen heraus geändert wird. Initialisiert wird sie mit dem Wert null. Die URL zu dem Skript ajaxchat.php müssen Sie natürlich an Ihre Umgebung anpassen.

Die Funktion getLatestEntries sieht wie folgt aus:

      //Funktion, mit der Anfragen nach neuen Einträgen gesendet wird
    function getLatestEntries() {
    //Anfrage senden, wenn Status der letzten Anfrage "completed" ist, bzw. "nicht
    initialisiert" (d.h. erster Aufruf)
    if (httpGetLatestEntries.readyState == 4 || httpGetLatestEntries.readyState
    == 0) {
    //Übergabe der latestID
    httpGetLatestEntries.open("GET","
    http://localhost/ajax/ajaxchat.php?
    action=getLatestEntries&latestID="+latestID, true);
    httpGetLatestEntries.onreadystatechange = handleHttpGetLatestEntries;
    httpGetLatestEntries.send(null);
    }
    }

Als Funktion, mit welcher der Browser die Serverantwort behandelt ist die Funktion handleHttpGetLatestEntries angegeben:

      //Behandelt die Serverantwort
    function handleHttpGetLatestEntries() {

    //wenn Anfrage den Status "completed" hat
    if (httpGetLatestEntries.readyState == 4) {
    //ermitteln der Antwort
    response = httpGetLatestEntries.responseXML.documentElement;
    //ermitteln der Messages; Überführung in ein Array
    messages = response.getElementsByTagName('message');

    //wenn es mindestens eine neue Nachricht hat, dann wird diese angezeigt!
    if(messages.length > 0) {

    for (var i=messages.length-1; i>=0; i--) {
    //Darstellung im Browser mit dem DOM
    showEntry= document.getElementById("showEntries");
    neuSpan = document.createElement('span');
    neuSpan.setAttribute('class','entry'); //CSS Klasse
    neuSmall = document.createElement('small');
    neuNameDate = document.createTextNode(messages[i].getElementsByTagName
    ('date')[0].firstChild.nodeValue + ': ' + messages[i].getElementsByTagName('name')[0].firstChild.nodeValue
    +': ');
    neuSmall.appendChild(neuNameDate);
    neuSpan.appendChild(neuSmall);
    neuSpan.appendChild(document.createElement('br'));
    neuNachricht = document.createTextNode(messages[i].getElementsByTagName
    ('nachricht')[0].firstChild.nodeValue);
    neuSpan.appendChild(neuNachricht);
    neuSpan.appendChild(document.createElement('br'));
    showEntry.insertBefore(neuSpan, showEntry.firstChild);
    }

    //Festlegung der neuen latestID; Zugriff auf die Werte über das DOM
    latestID = messages[0].getElementsByTagName('id')[0].firstChild.nodeValue;

    }
    //erneuter periodischer Aufruf (eine Art Rekursion)
    setTimeout('getLatestEntries();',3000); //Erneute Anfrage in drei Sekunden
    }
    }

Über die setTimeOut-Funktion wird nun unsere periodische Überprüfung nach neuen Einträgen durch den Aufruf der Funktion getLatestEntries alle drei Sekunden initialisiert; dabei handelt es sich um eine Art „verzögerte Rekursion“.

Neue Nachrichten eintragen
Die JavaScript Funktionen, über welche neue Einträge an den Server gesendet werden, sind ähnlich aufgebaut, wie die vorherigen Funktionen. Mit der ersten Funktion createNewEntry wird die http-Anfrage erzeugt, wobei ihr die Werte für die Felder name und nachricht aus dem HTML-Formular übergeben werden.

      //neue Nachricht auf dem Server erzeugen; die Übergabe der Werte
    erfolgt über das HTML Formular
    function createNewEntry(name, nachricht) {

    //Anfrage senden, wenn Status der letzten Anfrage "completed" ist, bzw. "nicht
    initialisiert" (d.h. erster Aufruf)
    if (httpCreateNewEntry.readyState == 4 || httpCreateNewEntry.readyState ==
    0) {
    //URL für HTTP Anfrage; muss angepasst werden
    url = 'http://localhost/ajax/ajaxchat.php?action=createNewEntry&name='
    + name + '&nachricht=' + nachricht;
    httpCreateNewEntry.open("GET", url, true);
    httpCreateNewEntry.onreadystatechange = handleHttpCreateNewEntry;
    httpCreateNewEntry.send();
    }
    }
      //behandelt die Antwort des Servers
    function handleHttpCreateNewEntry() {
    if (httpCreateNewEntry.readyState == 4) {
    //nachdem eine neue Nachricht erfolgreich erzeugt wurde, wird diese angezeigt
    getLatestEntries();
    }
    }

Nachdem die Daten erfolgreich in der Datenbank hinterlegt wurden, wird die Funktion getLatestEntries() wiederum aufgerufen, um sicherzustellen, dass die neue Nachricht auch sofort angezeigt wird.

Das Frontend
Nachdem nun die AJAX-Engine aufgestellt ist, wenden wir uns dem Frontend zu. Auch hier ist JavaScript gefragt. So können die Eingaben über JavaScript überprüft werden; die Darstellung der Nachrichten kann über eine CSS-Klasse beeinflusst werden.

Das Formular
Das Formular ist simpel gehalten; es gibt lediglich Eingabefelder und einen Submit-Button:

      <form name="form1" method="post" action="">
    <p>Name<br />
    <input type="text" name="name" id="name">
    <br />
    <br />
    Nachricht<br />
    <input type="text" name="nachricht" id="nachricht">
    </p>
    <p>
    <input type="submit" name="Submit" value="Submit" onclick="checkInput(document.form1.name.value,
    document.form1.nachricht.value)" >
    </p>
    </form>

Nachdem man auf den Submit-Button geklickt hat, wird die JavaScript-Funktion checkInput aufgerufen; an diese werden die eingegebenen Daten weitergegeben. In ihr wird die Eingabe überprüft.

Eine solche Überprüfung könnte im einfachsten Fall wie folgt aussehen:

      function checkInput(name, nachricht) {
    if(name != "" && nachricht != "") {
    //Falls alles OK ist, kann der neue Eintrag erzeugt werden
    createNewEntry(name, nachricht);
    }
    else {
    alert("Bitte sowohl einen Namen, als auch eine Nachricht eingeben!");
    }
    }

Die Darstellung der Ergebnisse kann mit Hilfe von CSS beeinflusst werden. Dazu greifen wir auf die über das DOM zugewiesene CSS-Klasse „entry“ zurück; über folgende Zeilen könnte man die Darstellung im Browser ein wenig ansehnlicher machen.

      <style type="text/css">
    .entry {
    width: 100%;
    background-color: #F5F5F5;
    border: 1 dotted #666666;
    font-family: Verdana;
    }
    .entry#small {
    color: #CCCCCC;
    }
    </style>

Screenshot

AJAX Chat in der konkreten Anwendung

Der Aufruf des Skriptes kann über einen onLoad-Event im Body-Tag der HTML-Seite (<body onload=“getLatestEntries()“>), in welcher das Formular eingebettet ist, eingeleitet werden; dabei wird die Funktion getLatestEntries das erste mal aufgerufen, wodurch die setTimeOut-Endlosschleife gestartet wird.

Alles in allem, war es ein langer Weg von der Idee zur konkreten Umsetzung. AJAX bedeutet nicht nur, dass die Webseiten in Zukunft in ihrem Verhalten normalen Desktop-Anwendung ähneln können, sondern bringt auch viel Arbeit mit sich. Vor allem das Zusammenspiel von JavaScript und XML klappt bislang nicht immer reibungslos.

Das hier vorgestellte Beispiel besitzt zudem einen Bug, der nicht verschwiegen werden darf. Auf der JavaScript Seite kann nicht mit Umlauten oder anderen Sonderzeichen umgegangen werden; diese verursachen einen Fehler. Alle Dateien gibt es wie immer als Paket zum Download. ™

Zur Problematik der Sonderzeichen ein Feedback von Rene Gade: Ich arbeite seit längerem mit XMLHTTPRequest, um das Umlaut-Problem in den Griff zu bekommen, habe ich eine Funktion zwischen geschaltet, die die Variablen-Werte kodiert und zum Server schickt.

Beispiel:

    //url = Ziel
    //param = Name der Variable
    //val = Wert der Variable
    function AddParam(url, param, val)
    {
    var qs = (url.indexOf("?") > -1 ) ? "&" : "?";
    //kodiere Wert (Umlaute und Sonderzeichen )
    qs += param + "=" + encodeURI(val);
    return url + qs;
    }

Auf dem Server müssen die Werte je nach Sprache wieder dekodiert werden.

Erstveröffentlichung 19.09.2005

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Thiemo Fetzer

Thiemo Fetzer

Agenturpartner

minddraft AG

Allenwinden

Werbeagentur Hannover | 360 Grad Konzept

Hannover

Warscher – Digital Experts

Horgen

Webtronix Media GmbH

Hanau

NETZhelfer GmbH

Ostfildern

Alle Agenturpartner

Jobs

Junior Webdesigner/ Mediengestalter

Innsbruck

Senior Online Marketing Manager und stv. Geschäftsführer

Innsbruck

Media Manager in München

München

Elektroinstallateur – Rechenzentrum

Karlsruhe

Senior Online Marketing Manager

München

Zum richtigen Job

Newsletter

Tipps, Tricks, Ratgeber. Unser Newsletter: Jeden Dienstag frisch gedruckt in Deinem Mail-Postfach.

Lust auf mehr? Wir empfehlen folgende Artikel:

Webdesign Trends 2022: Das erwartet uns

Animation, Interaktion und Immersion: Das neue Jahr bringt zahlreiche Trends im Webdesign mit sich und entwickelt einzelne Bereiche weiter. Bereits jetzt ist klar – in Sachen Webdesign-Trends hat das Jahr 2022 einiges zu bieten.

 →   

Google Fonts sind nicht mehr datenschutzkonform. Was nun?

Mit dem Urteil des Landgerichts München vom 20.01.2022 ist nun auch die Verwendung von Google Fonts über die Fonts API nicht mehr datenschutzkonform. Zeit sich nach einer Lösung umzusehen, wie Du dennoch Google Fonts weiterhin einsetzen kannst.

 →   

Dunkel Design – herzlich willkommen auf Dr. Web

Wir freuen uns, dass Moritz Dunkel mit seiner Agentur DNKL.DSGN aus Köln an Bord ist. Moritz Dunkel von Dunkel Design verstärkt unser Agentur-Netzwerk. Inhaltsstarke Seiten

 →   

7 Antworten zu „AJAX in der Praxis: Ein einfacher Chat“
— was ist Deine Meinung?

  1. Burak Kirca sagt:
    10. Juli 2013 um 5:10 Uhr

    Eine minimale Fehlerkorrektur im Code sorgt dafür, dass der Code auch mit Firefox und Chrome funktioniert.

    Die Stelle:

    mit

    ersetzen.

    Die Anpassung des Buttons kann mit CSS durchgeführt werden.

    Antworten
  2. Ich sagt:
    9. November 2012 um 14:21 Uhr

    Wenn noch einer behauptet, dass Ajax Chats einfach zu programmieren sind dem reiß ich die Eier ab

    Antworten
  3. Matthias sagt:
    15. Dezember 2009 um 2:28 Uhr

    Hallo,

    im InternetExplorer funktioniert der Chat einwandfrei! Aber im Firefox nicht – er speichert die Message nur in einen Intervall von 10-50 Minuten, und dann passiert erst mal lange Zeit gar nichts – bis es dann nach 10-50 Minuten erneut funktioniert… das setzt sich dann so fort.

    Ich habe auch schon die Übertragung in der ajaxchat.htm von GET auf POST verändert, das ändert nichts an dem Firefox-Fehler. Woran liegt das?

    Antworten
  4. Sphinx sagt:
    9. November 2009 um 1:13 Uhr

    function getLatestEntries($latestID) {

    $query = „SELECT id, name, nachricht, date FROM ajaxchat WHERE id > ‚“.$latestID.“‚ ORDER BY id DESC LIMIT 20″;

    oder

    $query = „SELECT id, name, nachricht, date FROM ajaxchat WHERE id > ‚$latestID‘ ORDER BY id DESC LIMIT 20“;

    Antworten
  5. Nils sagt:
    27. Februar 2009 um 19:10 Uhr

    ich habe mir die direkten datein angeguckt, die zum download da sind, angepasst, aber es funtzt nich im ansatz. ist das überhaupt dazu gedacht? ich versuche mir jetzt das selbst zusammenzubasteln, bezweifle aber meinen erfolg. (nie etwas mit ajax gemacht, nur php)
    über tipps & hilfe bin ich dankbar^^
    mfg

    Antworten
  6. FIL sagt:
    4. Februar 2009 um 21:04 Uhr

    Ist das aber nicht trotzdem sehr auslastend für die datenbank? Kann man das ajax nicht auf der serverseite laufen lassen? Sodass ajax und DB auf einem server laufen? Damit könnte man nämlich hunderte anfragen pro eingeloggten nutzer sparen…

    Antworten
  7. Engin Turhan sagt:
    3. Dezember 2008 um 17:53 Uhr

    fehlt da bei httpCreateNewEntry.send();
    nicht das NULL ?

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Dr. Web Logo weiss.

Pionier für Digitale Transformation. Seit 1997. ✅  Wissen, Tipps, Ratgeber, Dienstleister: Wir bringen wir die digitale Transformation von Unternehmen praxisnah voran.

Share on facebook
Share on twitter
Share on linkedin
Share on xing
Share on whatsapp
Share on email

Wissen finden

  • Dr. Web Autoren
  • Amazon SEO
  • Content Marketing
  • CMS
  • CSS
  • Digitalisierung
  • E-Commerce
  • Freelancer
  • Jobs & Karriere
  • Online-Marketing
  • SEO
  • UX Design
  • Webdesign
  • Website erstellen
  • WordPress
  • WooCommerce
Menü
  • Dr. Web Autoren
  • Amazon SEO
  • Content Marketing
  • CMS
  • CSS
  • Digitalisierung
  • E-Commerce
  • Freelancer
  • Jobs & Karriere
  • Online-Marketing
  • SEO
  • UX Design
  • Webdesign
  • Website erstellen
  • WordPress
  • WooCommerce

Rechtliches

  • Datenschutzerklärung
  • Geschäftsbedingungen (AGB)
  • Impressum
  • Kontakt
  • Nach oben ↑
Menü
  • Datenschutzerklärung
  • Geschäftsbedingungen (AGB)
  • Impressum
  • Kontakt
  • Nach oben ↑

Für Agenturen & Unternehmer

  • Als Agentur eintragen
  • Beste Agenturen finden
  • Städte: von A bis Z.
  • Agenturen in Augsburg
  • Agenturen in Basel
  • Agenturen in Berlin
  • Agenturen in Bochum
  • Agenturen in Bonn
  • Agenturen in Bremen
  • Agenturen in Dortmund
  • Agenturen in Dresden
  • Agenturen in Duisburg
  • Agenturen in Düsseldorf
  • Agenturen in Essen
  • Agenturen in Frankfurt am Main
  • Agenturen in Freiburg
  • Agenturen in Hamburg
  • Agenturen in Hannover
  • Agenturen in Innsbruck
  • Agenturen in Karlsruhe
  • Agenturen in Köln
  • Agenturen in Leipzig
  • Agenturen in München
  • Agenturen in Münster
  • Agenturen in Nürnberg
  • Agenturen in Offenbach am Main
  • Agenturen in Regensburg
  • Agenturen in Salzburg
  • Agenturen in Stuttgart
  • Agenturen in Wien
  • Agenturen in Zürich
  • Digitalagentur finden
  • Webdesign-Agentur finden
  • Werbeagentur finden
Menü
  • Als Agentur eintragen
  • Beste Agenturen finden
  • Städte: von A bis Z.
  • Agenturen in Augsburg
  • Agenturen in Basel
  • Agenturen in Berlin
  • Agenturen in Bochum
  • Agenturen in Bonn
  • Agenturen in Bremen
  • Agenturen in Dortmund
  • Agenturen in Dresden
  • Agenturen in Duisburg
  • Agenturen in Düsseldorf
  • Agenturen in Essen
  • Agenturen in Frankfurt am Main
  • Agenturen in Freiburg
  • Agenturen in Hamburg
  • Agenturen in Hannover
  • Agenturen in Innsbruck
  • Agenturen in Karlsruhe
  • Agenturen in Köln
  • Agenturen in Leipzig
  • Agenturen in München
  • Agenturen in Münster
  • Agenturen in Nürnberg
  • Agenturen in Offenbach am Main
  • Agenturen in Regensburg
  • Agenturen in Salzburg
  • Agenturen in Stuttgart
  • Agenturen in Wien
  • Agenturen in Zürich
  • Digitalagentur finden
  • Webdesign-Agentur finden
  • Werbeagentur finden
Das große Dr. Web Icon-Set: 970+ Icons, im SVG-Format​

Lade Dir jetzt das Icon-Set
kostenlos herunter ↓

Über 970 Dr. Web-Icons, kostenlos.
Danke nein, ist nichts für mich.
Invalid email address
Vielen Dank! Bitte schau noch in Dein Postfach und bestätige die Anmeldung.