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 :

Synchroniser JavaScript et PHP


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Points : 163
    Points
    163
    Par défaut Synchroniser JavaScript et PHP
    Bonjour,

    Je suis en train de faire un éditeur d'image en ligne. Les images sont traitées côté serveur, mais l'interface est en JavaScript. Alors quand l'utilisateur clique sur un effet, j'envoie un requête HTTP vers le serveur (en AJAX), qui modifie l'image.

    Mon problème est que le traitement de l'image prend un peu de temps (selon la taille). Alors est-ce qu'il y a un moyen de faire communiquer le PHP et le javascript, pour que l'image soit actualisée sur la page dés qu'elle est prète?

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    A moins de disposer d'un serveur permettant le push, non, ce n'est pas possible.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Pour les images le plus simple est d’utiliser l’évènement onload de l’objet HTMLImageElement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var img = new Image();
    img.onload = function ()
    {	// L'image est prete
    	document.getElementById('image').appendChild(this);
    }
    img.src = "/ProcessImage.php";
    J’utilise ceci avec des traitements pouvant dépasser les 20 minutes, l’evenemt onload c’est toujours déclencher

    Si tu persiste à vouloir utiliser l’objet XMLHttpRequest, sache qu’il est possible de requêter, de manière asynchrone, un fichier binaire sous la forme d’un ArrayBuffer, grâce au nouvelle specifs de XMLHttpRequest Level 2

    Si de manière plus général tu cherche une techno permettant au serveur de notifier les clients, je te conseil les Server-Sent Events, c’est très simple à mettre en place et ça utilise comme protocole un simple HTTP GET

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Points : 163
    Points
    163
    Par défaut
    Citation Envoyé par p3ga5e Voir le message
    Si tu persiste à vouloir utiliser l’objet XMLHttpRequest, sache qu’il est possible de requêter, de manière asynchrone, un fichier binaire sous la forme d’un ArrayBuffer, grâce au nouvelle specifs de XMLHttpRequest Level 2

    Si de manière plus général tu cherche une techno permettant au serveur de notifier les clients, je te conseil les Server-Sent Events, c’est très simple à mettre en place et ça utilise comme protocole un simple HTTP GET
    J'ai trouvé quelque chose d'un peu plus simple en JQuery!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('img').attr('src', 'my-image-handler.php');
    Dans ce cas, je dois juste appeler mon script PHP qui retournera une image, et je n'ai même plus besoin d'AJAX. J'espère que ça marchera

  5. #5
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Je sais pas trop comment va réagir certain navigateur avec ce type de solution à la limite du XSS, si dans ta page PHP tu as le bon header, je pense que ça passera, de plus faudrait mettre en cache tes images pour lors d'un reload du il reste en cache.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
        // Test image.
        $fn = '/test/ton_image.png';
        // recupération des headers envoyé par le client.
            header('Content-Length: '.filesize($fn));
            header('Content-Type: image/png');
            file_get_contents($fn);
        }
    ?>

Discussions similaires

  1. [PHP-JS] Javascript ou PHP
    Par lynchmaniac dans le forum Langage
    Réponses: 7
    Dernier message: 27/10/2005, 10h10
  2. [PHP-JS] Javascript et PHP: passer une valeur en paramètres
    Par anutka dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/10/2005, 12h05
  3. Cherche conseils pour livre HTML, JavaScript et PHP
    Par oodini dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2005, 15h45
  4. [PHP-JS] convertir un bout javascript en php ?
    Par Thierry8 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/08/2005, 23h42
  5. [PHP-JS] lien javascript vers php
    Par guttts dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/08/2005, 23h00

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