Heim  >  Artikel  >  Backend-Entwicklung  >  Wie interagieren Golang und JS?

Wie interagieren Golang und JS?

Guanhui
GuanhuiOriginal
2020-06-13 10:39:594680Durchsuche

Wie interagieren Golang und JS?

Wie interagieren Golang und JS?

1. Verwenden Sie die AJAX-Technologie, die einen Teil der Webseite aktualisieren kann, ohne die gesamte Webseite neu laden zu müssen.

  • Verwenden Sie Ajax. Der größte Vorteil besteht darin kann Daten verwalten, ohne die gesamte Seite zu aktualisieren. Dadurch können Webanwendungen schneller auf Benutzeraktionen reagieren und es wird vermieden, dass unveränderte Informationen über das Netzwerk gesendet werden.

  • Ajax erfordert keine Browser-Plug-ins, erfordert jedoch, dass der Benutzer die Ausführung von JavaScript im Browser zulässt. Genau wie DHTML-Anwendungen müssen Ajax-Anwendungen auf vielen verschiedenen Browsern und Plattformen gründlich getestet werden. Mit zunehmender Reife von Ajax sind auch einige Programmbibliotheken herausgekommen, die die Verwendung von Ajax vereinfachen. Ebenso ist eine weitere unterstützende Programmiertechnologie entstanden, die alternative Funktionen für Benutzer bereitstellt, die JavaScript nicht unterstützen.

  • Der Hauptkritikpunkt an der Verwendung von Ajax ist, dass es die Browser- und Lesezeichenfunktion beeinträchtigen kann. Bei dynamisch aktualisierten Seiten kann der Benutzer nicht zum vorherigen Seitenzustand zurückkehren, da sich der Browser nur statische Seiten im Verlauf merken kann. Die möglichen Unterschiede zwischen einer vollständig gelesenen Seite und einer dynamisch geänderten Seite sind sehr subtil; Benutzer erwarten oft, dass sie ihren vorherigen Vorgang abbrechen, aber in einer Ajax-Anwendung ist dies nicht der Fall um dies zu tun. Entwickler haben jedoch verschiedene Möglichkeiten gefunden, dieses Problem zu lösen. Die meisten Methoden vor HTML5 bestanden darin, einen versteckten IFRAME zu erstellen oder zu verwenden, um die Änderungen auf der Seite zu reproduzieren, wenn der Benutzer auf die Schaltfläche „Zurück“ klickt, um auf den Verlauf zuzugreifen. (Wenn der Benutzer beispielsweise in Google Maps zurückklickt, sucht es in einem versteckten IFRAME und spiegelt die Suchergebnisse dann in einem Ajax-Element wider, um den Anwendungsstatus auf den damaligen Stand wiederherzustellen.)

  • Was das Problem betrifft, dass Favoriten oder Lesezeichen kein Status hinzugefügt werden kann, bestand eine Möglichkeit vor HTML5 darin, URL-Fragment-IDs zu verwenden (häufig Anker genannt, bei denen es sich um die Teile nach # in der handelt). URL) ), um den Überblick zu behalten und dem Benutzer die Rückkehr zu einem bestimmten Anwendungsstatus zu ermöglichen. (Viele Browser ermöglichen JavaScript die dynamische Aktualisierung von Ankern, wodurch Ajax-Anwendungen Anker aktualisieren und gleichzeitig den angezeigten Inhalt aktualisieren können.) HTML5 wird später in der Lage sein, den Browserverlauf direkt zu manipulieren, den Webseitenstatus in Form von Zeichenfolgen zu speichern und Webseiten hinzuzufügen Beim Ausschneiden oder Setzen von Lesezeichen bleibt der Status unsichtbar erhalten. Die beiden oben genannten Methoden können auch das Problem lösen, dass man sich nicht gleichzeitig zurückziehen kann.

  • Bei der Entwicklung von Ajax muss die Netzwerklatenz – also die Zeitspanne zwischen der Anfrage des Benutzers und dem Senden einer Antwort durch den Server – sorgfältig berücksichtigt werden. Wenn Benutzern keine klare Antwort gegeben wird, die Daten nicht ordnungsgemäß vorgelesen werden oder XMLHttpRequest nicht ordnungsgemäß gehandhabt wird, fühlen sich Benutzer gelangweilt. Eine gängige Lösung besteht darin, eine visuelle Komponente zu verwenden, um dem Benutzer mitzuteilen, dass das System Hintergrundoperationen ausführt und Daten und Inhalte liest.

2. Mithilfe der WebSocket-Kommunikationstechnologie kann ein bidirektionaler Kanal basierend auf einer TCP-Verbindung zwischen dem Browser und dem Server bereitgestellt werden, was den Datenaustausch erleichtert.

  • Weniger Kontrollaufwand. Wenn nach dem Verbindungsaufbau Daten zwischen Server und Client ausgetauscht werden, sind die zur Protokollsteuerung verwendeten Paketheader relativ klein. Ohne Erweiterungen beträgt die Headergröße für Server-zu-Client-Inhalte nur 2 bis 10 Bytes (bezogen auf die Paketlänge); für Client-zu-Server-Inhalte müssen zusätzliche Header mit einer 4-Byte-Maske hinzugefügt werden. Im Vergleich zu HTTP-Anfragen, die jedes Mal vollständige Header enthalten, ist dieser Overhead deutlich reduziert.

  • Stärkere Echtzeitleistung. Da das Protokoll Vollduplex ist, kann der Server jederzeit proaktiv Daten an den Client senden. Im Vergleich zu HTTP-Anfragen, bei denen darauf gewartet werden muss, dass der Client eine Anfrage initiiert, bevor der Server antworten kann, ist die Verzögerung deutlich geringer, selbst im Vergleich zu ähnlichen langen Abfragemethoden wie Comet. Es können Daten in einem kurzen Zeitraum häufiger übermittelt werden Zeit.

  • Bleiben Sie in Verbindung. Im Gegensatz zu HTTP muss Websocket zunächst eine Verbindung herstellen, was es zu einem zustandsbehafteten Protokoll macht, und einige Statusinformationen können bei späteren Kommunikationen weggelassen werden. HTTP-Anfragen müssen möglicherweise in jeder Anfrage Statusinformationen (z. B. Identitätsauthentifizierung usw.) enthalten.

  • Bessere Binärunterstützung. Websocket definiert binäre Frames, die binäre Inhalte einfacher verarbeiten können als HTTP.

  • kann Erweiterungen unterstützen. Websocket definiert Erweiterungen, und Benutzer können das Protokoll erweitern und einige benutzerdefinierte Unterprotokolle implementieren. Einige Browser unterstützen beispielsweise Komprimierung usw.

  • Bessere Kompressionswirkung. Im Vergleich zur HTTP-Komprimierung kann Websocket bei entsprechender Erweiterungsunterstützung den Kontext früherer Inhalte erben und die Komprimierungsrate bei der Übertragung ähnlicher Daten erheblich verbessern.

Empfohlenes Tutorial: „Golang

Das obige ist der detaillierte Inhalt vonWie interagieren Golang und JS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn