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

Langage PHP Discussion :

Charger en différé d'une page php


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de snyfir
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 246
    Points : 56
    Points
    56
    Par défaut Charger en différé d'une page php
    Bonjour, quand je charge une page php avec la fonction imap pour connaitre le nombre de mail dans ma boite mail. Ma page mais des fois plus de deux seconde a se générer. Par contre si enlève cette fonction je reviens a quelque chose du genre 0.05 secondes. Je voudrais donc pourvoir dabor afficher ma page php, puis exécuter ma fonction imap et afficher sur la même page le nombre de mail, sans régénérer la page ?

    Mais voila, je n'est aucune idée comment mis prendre et si cela est réalisable.
    Si vous avez des idées la dessus, je serais preneur. Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Citation Envoyé par snyfir Voir le message
    Je voudrais donc pourvoir dabor afficher ma page php, puis exécuter ma fonction imap et afficher sur la même page le nombre de mail, sans régénérer la page ?
    Il me semble que pour tu pourrais utiliser ajax : http://ajax.developpez.com/

  3. #3
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Je pense que 12monkeys t'as montré le bon chemin.
    Jette un oeil ici

  4. #4
    Membre du Club Avatar de snyfir
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 246
    Points : 56
    Points
    56
    Par défaut
    Merci bien pour vos réponses.

    Après plusieurs lecture, je viens de créé une fonction java script, qui marche bien. Le seul problème est que sa ne m'affiche jamais chargement en court, même quand l'affichage du nombre de mail est long a s'afficher.
    Si vous pouviez regarder si mon script est bon ? Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    apercu('mail');
     
    function apercu(id)
    {
        var xhr;
        if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
        else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
        else {
            alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...');
            return;
        }
     
     
        xhr.open('POST','mail_js.php',true);
        xhr.onreadystatechange = function()
        {
            if (xhr.readyState == 4  && (xhr.status == 200 || xhr.status == 0))
            {
                if (document.getElementById) document.getElementById(id).innerHTML = xhr.responseText;
     
            } else if (xhr.readyState == 2 || xhr.readyState == 3) {
                if (document.getElementById) document.getElementById(id).innerHTML = "Chargement en cour !";
            }
     
        }
        xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
        xhr.send(null);
    }

  5. #5
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Le seul problème est que sa ne m'affiche jamais chargement en court, même quand l'affichage du nombre de mail est long a s'afficher.
    C'est normal man, il ne peut pas l'afficher tout seul, il faut que tu demande de le faire, quand cela est nécessaire.
    Pour ma part, je fais comme ceci:
    Primo je mets une sorte de zone réservée dans le haut de ma page ou j'affiche les messages réservé à Ajax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class=divstatus id=status>Aucune action en attente</div>
    Ensuite dans ma fonction de traitement Ajax je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var status = document.getElementById("status");
    status.innerHTML = "Chargement en cours...";
    Puis en fonction du code reçu, je change cette valeur (dans ton cas s'est xhr.readyState qui retourne les messages erreur ou autres).
    Dans ton code, je mettrais donc les message chargement en cours ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xhr.onreadystatechange = function(){
      status.innerHTML = "Chargement en cours...";

Discussions similaires

  1. Charger une page PHP
    Par Alain7751 dans le forum Langage
    Réponses: 2
    Dernier message: 21/06/2011, 11h17
  2. [FastCGI] Impossible de charger une page PHP
    Par Leobaillard dans le forum Apache
    Réponses: 4
    Dernier message: 26/02/2009, 11h02
  3. [MySQL] charger une table a partir phpMyAdmin dans une page php
    Par sniper_marra dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/08/2008, 18h02
  4. [AJAX] Charger une page php dans un div
    Par drannh dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 14/05/2008, 12h16
  5. info bulle charger une page php
    Par youcef81 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/02/2007, 17h41

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