WebSockets implémente la communication bidirectionnelle frontale et back-end, qui est plus réel et à faible co?t que le sondage. Lorsque vous l'utilisez, vous devez créer une instance et écouter pour des événements ouverts, message, fermer et d'erreur. Les données de transfert sont généralement codées et codées au format JSON. Lorsque la connexion est anormale, le mécanisme de reconnexion doit être déclenché et la stratégie de backoff exponentielle doit être utilisée pour contr?ler l'intervalle et limiter le nombre maximum de fois. Combiné avec Vuex / Redux, il peut gérer uniformément les mises à jour de l'état et des messages.
WebSockets permet au frontal d'établir des connexions persistantes avec le serveur, une véritable communication bidirectionnelle. Si vous avez déjà utilisé des sondages ou des sondages longs, vous constaterez que WebSocket a non seulement de meilleures performances en temps réel, mais a également une consommation de ressources plus faible.
Méthode d'utilisation de base
Il n'est en fait pas difficile d'utiliser WebSocket sur l'avant. Le noyau est de créer une instance WebSocket
, puis d'écouter des événements et d'envoyer des données.
const socket = new WebSocket ('wss: //example.com/socket'); socket.addeventListener ('open', fonction (événement) { socket.send (?Hello Server!?); }); socket.addeventListener ('message', fonction (événement) { console.log ('Message re?u:', event.data); });
Les événements communs incluent open
(connexion établi), message
(message re?u), close
(connexion fermée) et error
(erreur s'est produite). Il est recommandé de gérer au moins ces quatre événements, afin qu'il soit plus facile de résoudre les problèmes.
Remarque: L'adresse WebSocket doit être
ws://
ouwss://
, et les adresses HTTP ordinaires ne peuvent pas être connectées.
Traitement des formats de données re?us et envoyés
WebSocket transmet des cha?nes, par défaut, le message que vous recevez est un texte d'origine. Habituellement, nous utilisons le format JSON pour organiser les données:
socket.addeventListener ('message', fonction (événement) { const data = JSON.Parse (event.data); console.log (data.type, data.payload); });
Inversement, n'oubliez pas de convertir l'objet en une cha?ne lors de l'envoi:
socket.send (json.stringify ({ Type: ?chat?, charge utile: ?bonjour? }));
Si les données sont fréquemment envoyées et re?ues dans le projet, vous pouvez encapsuler une fonction d'outil pour traiter uniformément la logique du code pour éviter le code en double.
Exception de connexion et mécanisme de reconnexion
Lorsque le réseau est instable, le WebSocket peut être déconnecté. Le front-end doit considérer la reconnexion automatique, sinon l'utilisateur peut être coincé tout le temps.
- Déclencher la logique de reconnexion dans les événements
close
eterror
- Utilisez une stratégie de backoff exponentielle pour contr?ler l'intervalle de réessayer (comme l'attente de 1 seconde pour la première fois, 2 secondes pour le deuxième, 4 secondes pour la troisième fois)
- Définissez le nombre maximum de réessais pour empêcher les boucles infinies
Exemple:
Laissez RetryCount = 0; const MAXRESTRES = 5; fonction connect () { const socket = new WebSocket ('wss: //example.com/socket'); socket.addeventListener ('close', () => { if (retRyCount <maxretrie) { setTimeout (() => { RetryCount; connecter(); }, 1000 * Math.Pow (2, RetryCount)); } }); // D'autres auditeurs ... }
Cependant, il convient de noter que certains frameworks backend ont déjà des rythmes cardiaques intégrés et de la déconnexion de reconnexion, vous n'avez donc pas besoin de les implémenter à partir de zéro.
Utilisé en conjonction avec la gestion de l'état (comme Vuex / Redux)
Si vous utilisez Vuex ou Redux pour gérer l'état, vous pouvez intégrer WebSocket dans le magasin pour gérer l'état de la connexion et les mises à jour des messages uniformément.
L'idée de base est:
- établir une connexion lorsque le magasin est initialisé
- Mettre à jour l'état via la validation / répartition après avoir re?u le message
- Les modifications de l'état de surveillance des composants de la page réagissent
Par exemple dans Vuex:
const Store = new Vuex.Store ({{ état: { Messages: [] }, Mutations: { addMessage (état, message) { state.messages.push (message); } }, Actions: { initsocket ({commit}) { const socket = new WebSocket ('...'); socket.addeventListener ('message', événement => { const data = JSON.Parse (event.data); commit (?addMessage?, données); }); } } });
Cette structure rend le flux de données plus clair et facilite le débogage et les tests.
Fondamentalement, c'est tout. La clé pour faire bon usage des lignes Web est de stabiliser les connexions, de gérer correctement les messages et des exceptions, et de coopérer avec les outils de gestion de l'état modernes pour améliorer encore la maintenabilité.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

React lui-même ne gère pas directement la concentration ou l'accessibilité, mais fournit des outils pour traiter efficacement ces problèmes. 1. Utilisez des références pour gérer le focus par programmation, tels que le réglage de la mise au point des éléments via UseRef; 2. Utilisez des attributs ARIA pour améliorer l'accessibilité, tels que la définition de la structure et de l'état des composants de l'onglet; 3. Faites attention à la navigation au clavier pour vous assurer que la logique de mise au point dans des composants telles que les bo?tes modales est claire; 4. Essayez d'utiliser des éléments HTML natifs pour réduire la charge de travail et le risque d'erreur d'implémentation personnalisée; 5. React aide l'accessibilité en contr?lant le DOM et en ajoutant des attributs Aria, mais la bonne utilisation dépend toujours des développeurs.

Server-sideredering (ssr) innext.jsgenerateshtmlONTheServerForEachRequest, ImpromingPerformanceAndSeo.1.SSRISIDEALFORDYNYMICCONTENTTHATCHANGESSFREQUENDEM

WebAssembly (WASM) isagame-changerforfront-enddeveloperseeekinghigh-performancewebapplications.1.wasmisabinaryinstructionFormatThatrunsatNear-Nativespeed, AmatingLanguagesLikerUst, C, etgotoexeteinthebrowser.2

Les mises à jour immuables sont cruciales dans la réaction car elle garantit que les modifications d'état peuvent être détectées correctement, déclenchant la rediffusion des composants et évitant les effets secondaires. La modification directe de l'état, tel que push ou affectation, fera que React ne soit pas en mesure de détecter les modifications. La bonne fa?on de le faire est de créer de nouveaux objets au lieu d'anciens objets, tels que la mise à jour d'un tableau ou d'un objet à l'aide de l'opérateur d'extension. Pour les structures imbriquées, vous devez copier la couche par calque et modifier uniquement la partie cible, telles que l'utilisation de plusieurs opérateurs d'extension pour faire face aux attributs profonds. Les opérations communes incluent la mise à jour des éléments du tableau avec des cartes, la suppression des éléments avec des filtres, l'ajout d'éléments avec des tranches ou une expansion. Les bibliothèques d'outils telles que IMMER peuvent simplifier le processus, permettant "apparemment" à modifier l'état d'origine mais à générer de nouvelles copies, mais à augmenter la complexité du projet. Les conseils clés incluent chacun

Les applications frontales devraient définir des en-têtes de sécurité pour améliorer la sécurité, notamment: 1. Configurez les en-têtes de sécurité de base tels que CSP pour empêcher les XSS, les options X-Content-Type pour empêcher la protection de MIME, les anciens filtres à l'ancien HSTS pour forcer HTTPS; 2. Les paramètres CSP devraient éviter d'utiliser des tests de mode de reporting non sécurisés et dangereux; 3. Les en-têtes liés à HTTPS incluent la demande de mise à niveau automatique HSTS et le référentiel de références pour contr?ler le référence; 4. Autres en-têtes recommandés tels que Permis

L'attribut Data- * est utilisé dans HTML pour stocker des données supplémentaires, et ses avantages incluent que les données sont étroitement liées aux éléments et se conforment aux normes HTML5. 1. Lorsque vous l'utilisez, le nom commence par les données -, comme Data-Product-ID; 2. Il est accessible via GetAttribute ou DataSet de JavaScript; 3. Les meilleures pratiques incluent éviter les informations sensibles, la dénomination raisonnable, faire attention aux performances et ne pas remplacer la gestion de l'état.

Pour styliser les SVG à l'aide de CSS, vous devez d'abord intégrer des SVG en ligne dans HTML pour un contr?le fin. 1. En ligne SVG permet à ses éléments internes tels que ou à être sélectionnés directement via CSS et pour appliquer des styles, tandis que le SVG externe ne prend en charge que les styles globaux tels que la largeur et la hauteur ou les filtres. 2. Utilisez une syntaxe CSS régulière telle que .Classe: survolez pour obtenir des effets interactifs, mais utilisez le remplissage au lieu de la couleur pour contr?ler la couleur, et utilisez une course et une largeur de course pour contr?ler le contour. 3. Utilisez des noms de classe pour organiser des styles pour éviter la duplication et prêter attention aux conflits de dénomination et à la gestion de la portée. 4. Le style SVG peut être hérité de la page et peut être réinitialisé via SVG * {Fill: Aucun; trait: aucun;} pour éviter

L'ajout de sites Web Favicon nécessite de préparer des fichiers d'ic?nes, de placer le chemin correct et de les citer. 1. Préparez les ic?nes .ico ou .png de plusieurs size, qui peuvent être générées par des outils en ligne; 2. Mettez Favicon.ico dans le site Web du site Web; 3. Si vous devez personnaliser le chemin d'accès ou prendre en charge plus d'appareils, vous devez ajouter une référence de balise de liaison dans le HTMLhead; 4. Effacez le cache ou utilisez l'outil pour vérifier s'il est efficace.
