Maison > développement back-end > Golang > Les modèles Go peuvent-ils être partiellement actualisés dynamiquement ?

Les modèles Go peuvent-ils être partiellement actualisés dynamiquement ?

Linda Hamilton
Libérer: 2024-12-28 21:55:13
original
950 Les gens l'ont consulté

Can Go Templates Be Dynamically Partially Refreshed?

Actualisation partielle dynamique du modèle dans Go

Question :

Est-il possible d'actualiser dynamiquement seulement une partie spécifique d'un modèle Go lorsqu'une variable mises à jour ?

Réponse :

Bien que le moteur de modèles par défaut de Go ne prenne pas en charge cette fonctionnalité de manière native, une implémentation personnalisée est possible. Voici un guide étape par étape :

1. Refactorisation du modèle :

Séparez le modèle qui restitue le tableau d'adresses en un modèle distinct à l'aide des actions {{define "name"}} et {{template "name"}}.

2. Modification/Création du gestionnaire :

Créez un gestionnaire qui exécute exclusivement le modèle d'adresse autonome et génère son code HTML directement dans la réponse. Ce gestionnaire peut soit gérer à la fois le modèle de page complète et partiel, soit être dédié uniquement au modèle d'adresse.

3. Modification côté client :

Lorsque le tableau d'adresses doit être mis à jour, déclenchez un appel AJAX au gestionnaire qui restitue le modèle d'adresse. Dès réception de la réponse, remplacez le contenu de la balise wrapper de l'élément Address par la réponse HTML.

Voici un exemple de code JavaScript pour l'appel AJAX et la manipulation DOM :

var e = document.getElementById("addressees");
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        e.outerHTML = xhr.responseText;
    }
}
xhr.open("GET", "path-to-addresses-render", true);
try {
    xhr.send();
} catch (err) {
    // Handle error
}
Copier après la connexion

Remarque supplémentaire :

Les bibliothèques tierces telles que Gowut fournissent des fonctionnalités similaires pour l'actualisation partielle des modèles. Pour plus d'informations, consultez le code source de Gowut, en particulier la fonction JavaScript rerenderComp() dans le fichier js.go.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal