4 Stimmen

Ajax-Warnung, wenn eine Zeile zu einer Mysql-Datenbank hinzugefügt wurde

Ich versuche, eine Seite mit Live-Bestellungen für meine Website zu erstellen. Die Seite muss sich automatisch aktualisieren, um anzuzeigen, dass eine neue Bestellung aufgegeben wurde, und um eine Warnung/einen Ton anzuzeigen, wenn eine neue Bestellzeile in der Datenbank vorhanden ist.

Haben Sie eine Idee, wie ich dies leicht erreichen kann?

Danke! -Jay

4voto

Ben S Punkte 66945

Sie müssen etwas verwenden wie Komet um Daten an den Client weiterleiten zu können.

Verwenden Sie dann eine MySQL-Trigger ein Ereignis in Ihrer Serveranwendung auslösen, das die Comet-Verbindung offen hält, um die entsprechenden Daten zu übertragen.

Die weniger elegante Methode, die viele Entwickler verwenden (zumindest bis WebSockets populär werden) ist Umfrage mit AJAX für Änderungen Dies hat jedoch einen hohen Bandbreiten-Overhead und eine längere Latenzzeit zur Folge.

1voto

Jalal Punkte 6236

Aus AJAX-Sicht sollten Sie Timer in Javascript wie folgt verwenden...

// First parameter is an expression and second is a interval as miliseconds.
setTimeout ( "UpdateFunction()", 2000 );

Außerdem empfehle ich Ihnen, diesen Code zu verwenden...

setTimeout ( "UpdateFunction()", 5000 );

function UpdateFunction( )
{
  // (do something here)
  setTimeout ( "UpdateFunction()", 5000 );
}

su UpdateFunction() sollte eine php- oder asp-Seite aufrufen, die die Liste der Bestellungen erneuert.

0voto

Lance Punkte 5388

Ich würde denken, dass ein Polling-Ansatz gut für Sie wäre, da Server-Push viele negative Auswirkungen auf den Browser hat.

Wenn Sie sich für eine Polling-Route entscheiden, würde ich vorschlagen, dass ein zeitlich begrenztes Ereignis auf Ihrer Seite auftritt, das eine Webmethode aufruft. Die Web-Methode würde dann Daten (etwas Kleines wie eine ID) über Aufträge in der Warteschlange zurückgeben. Vergleichen Sie die Liste der IDs mit dem, was derzeit auf der Seite steht, und wenn Sie etwas in der neuen Liste haben, das noch nicht existiert (oder umgekehrt), rufen Sie eine separate Methode auf, um die zusätzlichen Details abzurufen und neue Aufträge anzuzeigen oder alte Einträge zu löschen.

Auf diese Weise müssen Sie keinen ständigen Datenstrom zum Server aufrechterhalten (was den Browser des Nutzers daran hindern kann, weitere Inhalte anzufordern).

Ich hoffe, das hat etwas geholfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X