Maison  >  Article  >  Tutoriel système  >  Explication détaillée de la transmission segmentée et du rendu dans les pages Web

Explication détaillée de la transmission segmentée et du rendu dans les pages Web

WBOY
WBOYavant
2024-03-14 10:50:11488parcourir

Explication détaillée de la transmission segmentée et du rendu dans les pages Web

Je suis récemment tombé sur ces connaissances, j'ai donc recherché des informations et réalisé quelques résumés

Qu'est-ce que le transfert segmenté ?

Lorsqu'un en-tête http est introduit. Cet en-tête indique que l'entité est transmise à l'aide d'un codage en morceaux. Le codage en morceaux peut diviser l'entité en morceaux pour la transmission, et chaque élément de contenu dans le codage en morceaux identifiera automatiquement la longueur. Cela donne aux développeurs Web une idée si plusieurs données sont nécessaires et si plusieurs données sont renvoyées lentement. Vous pouvez renvoyer un élément après l'avoir traité, afin que le navigateur puisse recevoir le code HTML le plus tôt possible et le restituer en premier.

Comment transférer par segments ?

Maintenant que nous savons que nous pouvons transmettre des pages Web une par une, nous pouvons modifier les pages Web, obtenir les données nécessaires pour chaque élément et les restituer ensemble sans attendre. pour que le serveur prenne un modèle et le restitue ensemble

Au final, nous constaterons que le temps total de traitement reste inchangé, mais en utilisant des pages Web de sortie segmentées, un morceau de HTML peut être rendu au client le plus tôt possible, afin que l'utilisateur puisse utiliser la partie qui arrive en premier. D’un autre côté, les commentaires en début de page peuvent également réduire l’anxiété des utilisateurs en matière d’attente.

En résumé, l'utilisation de cette méthode d'optimisation peut accélérer la vitesse de rendu des pages Web.

Scénarios applicables pour la transmission segmentée

1. Lorsqu'un traitement back-end de la page prend du temps, vous pouvez essayer d'utiliser une transmission segmentée. Vous pouvez restituer une partie puis envoyer une partie au client. Bien que la durée totale reste la même, le navigateur le fera. attendez que toute la transmission soit terminée. Il n’y aura pas d’état d’attente. Vous pouvez effectuer le rendu le plus tôt possible et donner des commentaires aux utilisateurs.

2. Lorsque le backend traite les données rendues, la partie supérieure est plus rapide et la partie inférieure est plus lente (vous pouvez d'abord restituer la partie la plus rapide ci-dessus)

bigpipe

Placez simplement la partie la plus lente en bas et passez-la dessus. Il existe donc une idée de chargement, qui consiste à utiliser le remplissage js. Le backend peut d'abord restituer le modèle rapide, puis restituer le modèle lent. Nous pouvons vider tous les blocs de la page et les restituer en parallèle. Celui qui est le plus rapide rendra le remplissage js en premier. De cette façon, un rendu parallèle et premier arrivé, premier servi peut être obtenu.

Scénarios applicables pour bigpipe

1 Le backend a un traitement des données lent, ce qui bloque la page, et la partie la plus lente ne se trouve pas à la fin de la page Web. (Vous pouvez transformer la partie la plus lente en remblai)
2. Lorsqu'il y a plusieurs éléments de données dans le backend qui doivent être traités en parallèle (vous ne savez pas quel élément revient en premier, alors restituez d'abord une étagère. Pour les requêtes parallèles, l'élément qui revient en premier est vidé et rempli en premier)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer