Maison >interface Web >js tutoriel >Comment afficher efficacement les données diffusées en temps réel à partir d'une vue Flask ?

Comment afficher efficacement les données diffusées en temps réel à partir d'une vue Flask ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-05 10:26:101053parcourir

How to Effectively Display Real-time Streamed Data from a Flask View?

Comment afficher les données diffusées à partir d'une vue Flask

Une tâche courante dans le développement Web consiste à afficher les données générées en temps réel. Ces données peuvent provenir de diverses sources, telles qu'une base de données, un capteur ou un modèle d'apprentissage automatique.

Dans Flask, vous pouvez diffuser des données à partir d'une vue à l'aide du mot-clé rendement. Cela vous permet d'envoyer des données au client par morceaux, plutôt que d'attendre que la réponse complète soit générée. Cela peut être utile pour afficher des données trop volumineuses pour tenir en mémoire ou pour afficher des données qui changent constamment.

Cependant, l'un des défis liés au streaming de données est que vous ne pouvez pas mettre à jour dynamiquement le modèle HTML car les données sont envoyées. Le modèle est rendu une fois côté serveur, puis envoyé au client. Cela signifie que vous ne pouvez pas utiliser JavaScript pour mettre à jour le modèle en temps réel.

Il existe deux manières principales de résoudre ce problème :

  1. Utilisez JavaScript pour lire la réponse diffusée et afficher les données côté client. Cela introduit de la complexité, mais cela permet de mettre à jour la page directement et donne un contrôle complet sur l'apparence de la sortie.
  2. Utilisez une iframe pour afficher la sortie HTML diffusée en streaming. Il s’agit d’une solution plus simple, mais qui présente certains inconvénients. L'iframe est un document distinct, ce qui augmente l'utilisation des ressources. Puisqu'il affiche uniquement les données diffusées en continu, il n'est peut-être pas facile de le styliser comme le reste de la page. Il ne peut ajouter que des données, donc une sortie longue s'affichera sous la zone de défilement visible. Il ne peut pas modifier d'autres parties de la page en réponse à chaque événement.

Voici quelques exemples de mise en œuvre des deux solutions :

Utilisation de JavaScript pour mettre à jour le page directement

<script>
    var xhr = new XMLHttpRequest();
    xhr.open('GET', '/stream');
    xhr.send();
    xhr.onload = function() {
        if (xhr.status === 200) {
            var data = xhr.responseText;
            // Update the page with the new data
        }
    };
</script>

Utiliser une iframe pour afficher le code HTML diffusé sortie

<iframe src="/stream"></iframe>

La meilleure solution pour vous dépendra de vos besoins spécifiques. Si vous devez mettre à jour la page directement et avoir un contrôle total sur le résultat, l'utilisation de JavaScript est la meilleure option. Si vous avez besoin d'une solution plus simple ou si vous n'avez pas besoin de mettre à jour la page directement, alors utiliser une iframe est un bon choix.

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:
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