IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Afficher des données en temps réel


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 104
    Points : 53
    Points
    53
    Par défaut Afficher des données en temps réel
    Bonjour,

    s'il vous plait, avez vous une idée sur la manière d'afficher des données en temps réel, provenant d'une base de données, sans utiliser les techniques de rafraîchissement tout x secondes comme "setTimeout".

    Merci.

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Salut,

    hélas, le temps réel sur Internet, ça n'existe pas ! Les latences du réseau nous l'interdisent. Mais on peut s'en approcher, en faisant des setTimeout suffisamment fréquents.
    Attention toutefois à ne pas choisir une trop haute fréquence de refresh, ça pourrait surcharger la bande passante ! Tout dépend du volume de données moyen transmis à chaque requête.
    À toi de juger quelle fréquence est suffisamment haute pour être suffisamment « temps réel », mais suffisamment basse pour ne pas saturer ta connexion
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Salut,

    A vrai dire, il y a l'émergence d'une nouvelle technologie, les websockets, qui permettent de faire du quasi temps réel (on va dire quasi par rapport à l'éventuelle latence du réseau comme l'a dit Waitlin).

    Je n'ai pas encore eu l'occasion de me pencher dessus, mais Node.js (http://nodejs.org/) est un framework permettant de créer un serveur http qui supporte les websocket.

    C'est relativement récent comme technologie, mais d'après ce que j'ai pu lire, c'est en pleine expansion et cela pourrait devenir un standard comme l'est ajax de nos jours (d'ailleurs, certains appellent cette méthode de communication "reverse ajax").

    A+

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 123
    Points : 130
    Points
    130
    Par défaut juste pour info
    alors, la technique du "selecting" en base de données n'a jamais existé.
    c'est toujours un "polling" donc un rafraichissement toutes les x secondes.

    je doute que Node.js arrive à faire du vrai "selecting" puisque c'est la base de données qui devra elle-même envoyer un message au serveur web pour dire "hey, something has changed in my database".

    et ça pour l'heure, je ne connais que presque Firebird (interbase) qui soit peut-être (je n'ai pas testé) capable de faire du vrai "selecting" /

    sinon, peut-être un request broker en MS SQL 2005 mais encore une fois, ce n'est pas du vrai "selecting"

    un selecting, c'est un callback (rappel) qui est émis par le "owner", possesseur.
    under construction...

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 636
    Points : 66 655
    Points
    66 655
    Billets dans le blog
    1
    Par défaut
    Jusqu'a présent à ma connaissance la requete est toujours émise par le client et le serveur répond. Je ne connais pas de technologie qui permette l'inverse
    => setInterval
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 104
    Points : 53
    Points
    53
    Par défaut
    Merci pour votre réponse, mais vraiment je ne trouve pas la solution même la technologie sur laquelle je vais travailler , lorsque je vois par exemple les système qu'il utilise dans la bourse dans des différente site et las mise à jours des information relatif aux actions je pense pas que c'est un rafraîchissement tout les x seconde parce que si on suppose quand rafraîchissement toutes les 10 secondes donc va rater pas mal d’information et on va avoir une information décalé .


    Merci une autre fois pour vos réponses.

  7. #7
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    C'est le "polling" de Olivieram qui m'a fait penser à "pull", puis à "push", un truc dont j'avais entendu parler il y a quelques temps déjà

    https://fr.wikipedia.org/wiki/Server_push

    Quand aux réseaux boursiers, ils reposent sur des protocoles différents de HTTP, donc tu auras du mal à obtenir les mêmes résultats avec un serveur web...
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Avez-vous réellement regardé ce qu'étaient les websockets ?

    J'ai évoqué Node.js car c'est une implémentation coté serveur pour supporter ces websockets, mais il existe une multitude de serveur supportant cette méthode de communication...

    J'ai trouvé un commentaire sur le forum plutôt intéressant sur les bénéfices des websocket :
    http://www.developpez.net/forums/d11...s/#post6336831

    Pour répondre à olivieram, ma réponse ne concernait que la communication temps réel (via justement les websockets), la problématique de "sélecting" est un tout autre problème qui est à la charge du serveur web, et aucunement le client...

    Bref, je pense malgré tout que les websockets sont la solution si tu veux utiliser une architecture utilisant un client léger (libre à toi d'utiliser un client lourd avec de bonnes vieilles sockets en mode connecté...).

    Jusqu'a présent à ma connaissance la requete est toujours émise par le client et le serveur répond. Je ne connais pas de technologie qui permette l'inverse
    => setInterval
    Les websockets changent justement ce mode de fonctionnement ! puisque la websocket n'est jamais fermée entre le client et le serveur, et la communication étant bi-directionnelle, ainsi l'échange est instantané.

    Certes, les websockets sont une technologie relativement récente mais qui est intégrée à HTML5, il y a de grandes chances que cela se popularise sur le web...

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Citation Envoyé par BaBeuH Voir le message
    Avez-vous réellement regardé ce qu'étaient les websockets ?
    Les websockets ne changent rien au fait qu'Oracle ne va pas t'appeler à chaque fois qu'une donnée change. C'est donc le serveur qui fait le polling au lieu du navigateur... Bon, ça fait une différence, mais pas énorme.

    Citation Envoyé par BaBeuH Voir le message
    J'ai évoqué Node.js car c'est une implémentation coté serveur pour supporter ces websockets, mais il existe une multitude de serveur supportant cette méthode de communication...
    Nettement moins du côté navigateurs, par contre. Du coup, c'est peut-être une solution prometteuse pour l'avenir, mais pour l'instant pas très réaliste.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Citation Envoyé par aymen8219 Voir le message
    Merci pour votre réponse, mais vraiment je ne trouve pas la solution même la technologie sur laquelle je vais travailler , lorsque je vois par exemple les système qu'il utilise dans la bourse dans des différente site et las mise à jours des information relatif aux actions je pense pas que c'est un rafraîchissement tout les x seconde parce que si on suppose quand rafraîchissement toutes les 10 secondes donc va rater pas mal d’information et on va avoir une information décalé .


    Merci une autre fois pour vos réponses.
    Avec un bon serveur et une connexion internet "normale", tu peux facilement faire une requête par seconde sans lag. (perso pour mes tchats, je met un delai entre 2 et 8 secondes mais la plupart des messages envoyés et reçus sont des messages vides, il n'y a donc quasi aucune donnée qui transite.)
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(a='eval(a)')
    recursive make it evil
    eval make it eval

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Les websockets ne changent rien au fait qu'Oracle ne va pas t'appeler à chaque fois qu'une donnée change. C'est donc le serveur qui fait le polling au lieu du navigateur... Bon, ça fait une différence, mais pas énorme.
    D'où ma réponse où je botte en touche concernant la base de données (le fait que le serveur se charge de la communication avec la base de données plutôt que directement le client est, pour ma part, un souci d'architecture et de sécurité) :
    Pour répondre à olivieram, ma réponse ne concernait que la communication temps réel (via justement les websockets), la problématique de "sélecting" est un tout autre problème qui est à la charge du serveur web, et aucunement le client...
    Citation Envoyé par thelvin Voir le message
    Nettement moins du côté navigateurs, par contre. Du coup, c'est peut-être une solution prometteuse pour l'avenir, mais pour l'instant pas très réaliste.
    Effectivement, j'aurai dû mettre l'accent sur l'implémentation coté client, au lieu de ça, j'ai sombré dans l'argument marketing du HTML5 (à quand le web 3.0 ? )

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Ligne de commande php
    J'utilise maria db et php server sous Android. Je ne vois pas comment faire fonctionner le tchat version +, à partir d'une adresse ip et d'un numéro de port.

Discussions similaires

  1. afficher des valeur en temps réel en utilisant chart control
    Par zikose dans le forum Windows Forms
    Réponses: 0
    Dernier message: 18/04/2015, 12h52
  2. [AJAX] Afficher des valeurs en temps réel
    Par fatimazahra kachiri dans le forum AJAX
    Réponses: 4
    Dernier message: 12/04/2014, 23h06
  3. [PHPExcel] Télechargement d'un export des données en temps réel
    Par spark_legion dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 31/05/2011, 10h35
  4. Réponses: 0
    Dernier message: 29/01/2011, 18h40
  5. Réponses: 7
    Dernier message: 27/01/2006, 02h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo