Ich habe eine Spalte in meiner Datenbank, die zufällig aktualisiert wird. Wenn diese Spalte aktualisiert wird, muss ich den Inhalt meiner Seite aktualisieren. Wie kann ich AJAX + jQuery verwenden, um eine Aktion nur bei DB-Änderungen durchzuführen?Verwenden Sie AJAX, um SQL-Datenbank nach Änderungen zu beobachten
Antwort
Verwendung setInterval-Funktion von JavaScript für die Abfrage und den Wert des aktualisierten dababase Feld für weitere Einzelheiten http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/
Sie müssen fortlaufend eine Seite mit dem Wert aus der Datenbank abrufen.
Hängen Sie eine spezielle gespeicherte Prozedur in Ihre Datenbank ein, die Ihre Anwendung nach einer Änderung benachrichtigt. Sie benötigen ein benutzerdefiniertes Modul und die richtigen Triggeranweisungen.
Ihre andere Option ist Polling.
Wie würde es die Anwendung alarmieren, die sich im Browser des Clients befindet? –
Die Anwendung besteht aus zwei Teilen: im Browser und auf dem Webserver. Der Back-End-Webdienst ist verantwortlich für das Gespräch mit der Datenbank, es sei denn, der Fragesteller verwendet den .0000001% -Stil, wenn der Browser SQL mit einer Datenbank verbindet. –
+1 für eine Möglichkeit, "Datenbankabfrage" zu verhindern, auch wenn "Client-Server-Abfrage" nicht verhindert wird –
Der Server (Datenbank/Web) kann keine Verbindung initiieren - nur der Client kann. Sie müssen also die Datenbank abfragen, bis ein Update verfügbar ist. Sie können einen Webdienst erstellen, der die Datenbank prüft und den jQuery verwendet.
Edit: Ich stehe behoben. Es ist möglich, eine AJAX-Verbindung offen zu halten, bis der Server Daten dorthin "schiebt". Siehe: http://en.wikipedia.org/wiki/Reverse_Ajax
Und anscheinend ist es wirklich Umfragen: http://en.wikipedia.org/wiki/Push_technology#Long_polling. Wenn der Server noch keine Daten zum Senden hat, hält er die Verbindung offen, bis sie es tut. Es ist keine "reine" Push-Technologie, da der Client keinen Überwachungsport hat, mit dem der Server verbunden ist. Der Effekt ist jedoch ähnlich.
Bearbeiten 2: Zurück zur Beantwortung Ihrer Frage ... Sie müssen wählen, wie Sie den Web-Service "abfragen". Der Web-Service müsste dann die Datenbank überprüfen, um zu sehen, ob es Updates gab. Das Überprüfen der Datenbank auf Updates ist möglicherweise am schwierigsten und hängt wirklich von Ihren Anforderungen ab. Sie können eine SQL-Abfrage ausführen, um zu sehen, ob sich etwas geändert hat, aber woher wissen Sie das? Sie benötigen eine Art von Parameter (in der Regel ein Datum), mit dem verglichen werden kann. Wenn es falsch gemacht wird, könnten Sie einige Updates verpassen oder mehrere Treffer für ein Update haben. Was Autokratie sagte, wäre ein guter Weg, um über Updates informiert zu werden. Sie können diese Liste in der Datenbank, im Speicher usw. aufbewahren und löschen, wenn der Client die Aktualisierungen erhält.
Grundsätzlich müssen Sie den Server ständig nach Änderungen an der DB abfragen. Der Server kann den Client nicht anrufen, so dass der Client den Server nur ständig nach Änderungen fragen muss.
Siehe http://en.wikipedia.org/wiki/Reverse_Ajax –
Ich würde vorschlagen, eine HTML-Seite zu erstellen, die setIntreval() verwendet, um wiederholt AJAX-Aufrufe an ein PHP-Skript auszuführen, das die Datenbank abfragt. Sie könnten JSON und PEAR verwenden, um die Aufgabe ein wenig zu vereinfachen.
Referenz Links:
Verstanden. Danke vielmals. Ihre Methode funktioniert perfekt! Ich kann das Intervall nicht zu niedrig einstellen oder es gibt Probleme beim Öffnen/Schließen von Datenlesern. –
Was Sie beschreiben, ist Umgangssprache Comet Programmierung. Comet beschreibt eine Gruppe von Techniken zum Übertragen von Inhalten auf eine Webseite mit einer persistenten HTTP-Verbindung.
Der Push wird mit einer Kombination aus Trigger und gespeicherter Prozedur im Datenbankserver ausgelöst. Auf diese Weise tritt es unabhängig davon auf, woher das Datenupdate stammt.
Du hast es. Wikipedia (http://en.wikipedia.org/wiki/Comet_%28programming%29): Comet ... ist unter verschiedenen anderen Namen bekannt, darunter Ajax Push, Reverse Ajax, Zwei-Wege-Web, HTTP-Streaming und HTTP Server Push unter anderem. –
Das klingt sehr nett. Ich werde mich darum kümmern müssen. Danke für den Hinweis! –
zum Beispiel http://www.ape-project.org/ – choise
Im tun fast gleiche mit einem Chat
Check folgenden Link, um zu überprüfen, neu lädt ein PHP-Skript jedes xx sek.
sieht wie folgt aus: ersetzen j mit $, wenn nicht jQuery.noConflict mit ..
j(".chatref").everyTime(3000,function(i){
j.ajax({
url: "chatx.php",
cache: false,
success: function(updated){
j(".chatref").html(updated);
...do stuff..
}
});
Dies ist eine sehr schöne Methode, die ich denke :) wenn Sie wollen Vars schicken, nur um zu chatx.php hinzufügen ? php & x = 1 & y = 2?>
- 1. Ein Verzeichnis nach Änderungen in Java beobachten
- 2. angularjs Beobachten rootscope Änderungen
- 3. WiFi/3G-Änderungen beobachten
- 4. Verwenden Sie AJAX, um nach einer neuen Nachricht zu suchen
- 5. Beobachten von NSMutableDictionary-Änderungen
- 6. Beobachten NSPopupButton Änderungen
- 7. Beobachten Sie ein Objektdiagramm für Änderungen
- 8. Meteor Sammlung beobachten Änderungen rihtly
- 9. Beobachten einer Eigenschaft für Änderungen
- 10. Wie knockoutJS verwenden, um Daten auf dem Server über AJAX zu beobachten?
- 11. Verwenden Sie PHP + jQuery AJAX, um die MySQL-Datenbank auf Änderungen zu prüfen und die Änderungen zu laden?
- 12. Xampp - PHP - SQLDatenbank
- 13. Beobachten einer Variablen für Änderungen ohne Abfrage
- 14. Beobachten Sie Änderungen im lokalen Speicher in Angular 2
- 15. Rxjs Beobachten Objekt Updates und Änderungen
- 16. Serverfunktion Aufruf am Dokument Änderungen beobachten
- 17. Beobachten Ordner für Änderungen - bash Effizienz
- 18. Ist es möglich, Änderungen von Attributen zu 'beobachten'?
- 19. AJAX verwenden, um einen Datenlogger zu erstellen
- 20. So verwenden Sie Ajax, um dynamisch den Busplan zu erhalten
- 21. Stoppen Sie einen Ordner für Änderungen zu beobachten, wenn eine Datei existiert (Bash)
- 22. Beobachten Sie einen Ordner für Änderungen mit node.js, und drucken Sie Dateipfade, wenn sie geändert werden
- 23. Beobachten für DOM-Änderungen, die elegante Art und Weise
- 24. Kann KVO Änderungen in einem UIView Subview Array beobachten?
- 25. Wie kann man Änderungen im Verlauf des PHP-Skripts beobachten?
- 26. npm Skripte nodemon - js und scss Dateien auf Änderungen beobachten
- 27. Google Drive SDK Push-Benachrichtigungen - Änderungen an allen Dateien beobachten?
- 28. Verwenden von Delphi, um Änderungen an Ordner zu verfolgen?
- 29. Verwenden Sie poll(), um nach Dateiänderungen zu suchen
- 30. Verwenden Sie Javascript, um Skriptverweise nach Bedarf zu injizieren?
Nicht unbedingt. Es gibt Push-Techniken zur Verfügung. –
@RobertHarvey Wie? Kannst du so etwas geben? –