Heim > Artikel > Backend-Entwicklung > html - Meine Website wurde mit PHP MySQL Javascript erstellt, das zur Anzeige dynamischer Daten in Echtzeit verwendet wird. Jetzt möchte ich ein Alarmlicht auf der Hauptoberfläche erstellen. Bitte geben Sie mir einen Rat!
Derzeit gibt es zwei ausgereifte Lösungen, Ajax Polling und Web Socket, letzteres wird natürlich empfohlen.
Was die Person oben gesagt hat 你的Web是由PHP服务端脚本开发,很遗憾Web Socket并不能与PHP建立通信
, das ist meiner Erfahrung nach falsch.
Ich habe es persönlich geübt (es können sowohl Online-Projekte als auch Befehlszeilen-Web-Sockets implementiert werden, die in PHP geschrieben sind. Die Verwendung von Web-Sockets in PHP ist grundsätzlich unabhängig von der Sprache. Sie können sich Walkerman und Swoole in PHP ansehen.
Oder Sie können Folgendes wählen: http://socket.io/ Dies kann durch die Kombination mit Redis erreicht werden.
Das Frontend aktualisiert die Seite nicht, um Sachdaten zu erhalten. Derzeit gibt es nur zwei Technologien, Ajax und Web Socket. Dies erfordert einen Vergleich der Unterschiede zwischen den beiden Technologien. Ajax ist eine vollständig webbasierte Datenerfassungstechnologie, was bedeutet, dass die Daten, die es erhalten kann, tatsächlich das Ergebnis eines Webserver-seitigen Skripts sind, das URL-Feedback verwenden kann Für Sie geeignet. Genauer gesagt ist das Design relativ einfach. Ein großer Nachteil der Ajax-Technologie besteht jedoch darin, dass Informationen nur passiv erfasst werden können. Kombinieren Sie es mit Ihrem Anwendungsszenario: Die Temperatur ändert sich, wann ändert sie sich? Wann werden die Daten aktualisiert? Offensichtlich ist das Front-End-JS-Skript unvorhersehbar. Das Einzige, was es tun kann, ist, einen Timer einzustellen und alle n (Milli) Sekunden Daten abzurufen. Wenn sich die Daten zwischen diesem Zeitpunkt und dem letzten Zeitpunkt ändern, kann das Diagramm aktualisiert werden. Ein solcher passiver Ansatz führt zu einem Problem. Das Erfassungsintervall ist zu lang, was die Wiedergabe von „Echtzeit“-Daten erschwert. Das Intervall ist zu kurz und es wird eine große Menge nutzloser Informationen geladen ist derselbe wie der vorherige), wodurch sich die Verarbeitungszeit des Servers erhöht. Was ist also eine bessere Lösung? Natürlich gibt es das. Web Socket basiert auf der Front-End-Entwicklung und löst dieses Problem. Es stellt eine Kommunikationsverbindung mit dem Server her, es kann aktiv Nachrichten senden und die empfangende Partei kann die Ergebnisse in Echtzeit zurückmelden. Warum kann diese Technologie in Ihrer aktuellen Anwendung nicht eingesetzt werden? Zunächst wird Ihr Web per PHP-Serverskript entwickelt. Leider kann Web Socket keine Kommunikation mit PHP herstellen. Sie müssen ein serverseitiges Skript entwickeln, das aktive Anforderungen basierend auf dem Server haben kann, z. B. Java Socket Server. In diesem Artikel wird nicht allzu detailliert auf die Erstellung eingegangen.
Ich bin kein Meister, ich schlage vor, dass Sie es asynchron über AJAX erhalten. Wie im vorherigen Abschnitt erwähnt, hängt die Anzeigemethode von Ihren eigenen Designanforderungen ab.
Lesen Sie es mit Ajax in regelmäßigen Abständen, z. B. alle eine Minute oder alle zehn Sekunden