Heim > Backend-Entwicklung > Golang > Wie aktualisiere ich Vorlagenteilchen in Go dynamisch?

Wie aktualisiere ich Vorlagenteilchen in Go dynamisch?

Linda Hamilton
Freigeben: 2024-12-24 10:52:15
Original
520 Leute haben es durchsucht

How to Dynamically Update Template Partials in Go?

Vorlagenteile in Go dynamisch aktualisieren

In Go ist die Möglichkeit, einen Teil einer Vorlage zu aktualisieren, wenn eine Variable geändert wird, nicht von Natur aus vorhanden unterstützt. Um diese Funktionalität zu erreichen, muss eine benutzerdefinierte Lösung implementiert werden.

Implementierungsschritte:

  1. Refactor-Vorlagen: Extrahieren Sie den Abschnitt, der das rendert Adressen in einen separaten Vorlagenblock mit {{define "Addresses"}} oder {{block "Adressen"}}.
  2. Handler ändern/erstellen: Erstellen Sie einen Handler, der ausschließlich die Adressenvorlage ausführt und die Ausgabe an die HTTP-Antwort sendet. Dieser Handler kann unabhängig oder innerhalb des Handlers für die Ganzseitenvorlage verwendet werden.
  3. Clientseitige Logik: Führen Sie auf der Clientseite bei Bedarf einen AJAX-Aufruf an den Adressenhandler aus Aktualisieren Sie die angezeigten Adressen. Ersetzen Sie den Inhalt des Addresses-Wrapper-Elements durch die Antwort des AJAX-Aufrufs.

Schritte im Detail:

  1. Vorlage Refactoring:

    {{define "Addresses"}}
      <ul>
      {{range $key, $value := .Addresses}}
     <li>{{ $key }}: {{ $value }}</li>
      {{end}}
      </ul>
    {{end}}
    Nach dem Login kopieren
  2. Handler-Modifikation:

    import "net/http"
    
    func AddressesHandler(w http.ResponseWriter, r *http.Request) {
      data := map[string]string{"Addresses": []string{"Address1", "Address2"}}
      t, err := template.New("AddressesTemplate").Parse("{{define "Addresses"}}{{.Addresses}}{{end}}")
      if err != nil {
     http.Error(w, http.StatusInternalServerError.String(), http.StatusInternalServerError)
     return
      }
      err = t.ExecuteTemplate(w, "Addresses", data)
      if err != nil {
     http.Error(w, http.StatusInternalServerError.String(), http.StatusInternalServerError)
     return
      }
    }
    Nach dem Login kopieren
  3. Client-Seite Implementierung:

    var addressesElement = document.getElementById("addresses");
    
    function refreshAddresses() {
      var xhr = new XMLHttpRequest();
      xhr.open("GET", "/addresses", true);
      xhr.onreadystatechange = function() {
     if (xhr.readyState === 4 && xhr.status === 200) {
       addressesElement.outerHTML = xhr.responseText;
     }
      };
      xhr.send();
    }
    Nach dem Login kopieren

Alternatives Framework:

Gowut ist ein Go-Web-Framework, das ähnliche Funktionen für dynamische Teilaktualisierungen bereitstellt Webseiten.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Vorlagenteilchen in Go dynamisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage