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 }
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!