"Obligé de fournir tous les tags patchables" : Non, pas du tout. En mode patch, le serveur retourne uniquement les fragments qu'il veut mettre à jour. Il n'y a pas d'obligation de retourner tous les éléments patchables de la page. Le serveur décide ce qu'il envoie, μJS applique ce qu'il reçoit.
Dans l'exemple que j'ai donné, le serveur envoie deux fragments qui vont modifier deux zones dans la page. Mais on pourrait tout aussi bien envoyer un seul fragment. Ou trois.
En fait, il n'y a pas de notion de "tag patchable". En mode patch, le flux envoyé par le serveur détermine les éléments à mettre à jour grâce aux attributs mu-patch-target qui servent à indiquer la cible à mettre à jour. Mais ça peut être n'importe quel élément "ciblable" de la page.
Éléments interactifs dans les zones patchables : C'est ça, idiomorph est là pour ça. Il fait du diff/patch du DOM plutôt que de remplacer brutalement, ce qui préserve l'état des inputs, vidéos, checkboxes, etc.
Service worker et headers : Bonne remarque. Si le service worker crée une nouvelle requête (new Request(...)), il faut bien recopier les headers μJS manuellement, sinon le backend ne les voit plus. À toi de voir si ton backend en a vraiment besoin ou pas.
[^] # Re: contenus et habillage
Posté par Amaury Bouchard (site web personnel) . En réponse à la dépêche Sortie de μJS, une bibliothèque JavaScript légère pour dynamiser un site sans framework. Évalué à 3.
"Obligé de fournir tous les tags patchables" : Non, pas du tout. En mode patch, le serveur retourne uniquement les fragments qu'il veut mettre à jour. Il n'y a pas d'obligation de retourner tous les éléments patchables de la page. Le serveur décide ce qu'il envoie, μJS applique ce qu'il reçoit.
Dans l'exemple que j'ai donné, le serveur envoie deux fragments qui vont modifier deux zones dans la page. Mais on pourrait tout aussi bien envoyer un seul fragment. Ou trois.
En fait, il n'y a pas de notion de "tag patchable". En mode patch, le flux envoyé par le serveur détermine les éléments à mettre à jour grâce aux attributs
mu-patch-targetqui servent à indiquer la cible à mettre à jour. Mais ça peut être n'importe quel élément "ciblable" de la page.Éléments interactifs dans les zones patchables : C'est ça, idiomorph est là pour ça. Il fait du diff/patch du DOM plutôt que de remplacer brutalement, ce qui préserve l'état des inputs, vidéos, checkboxes, etc.
Service worker et headers : Bonne remarque. Si le service worker crée une nouvelle requête (new Request(...)), il faut bien recopier les headers μJS manuellement, sinon le backend ne les voit plus. À toi de voir si ton backend en a vraiment besoin ou pas.