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

Conception Web Discussion :

Comment effectuer une fonction en fonction du temps


Sujet :

Conception Web

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Comment effectuer une fonction en fonction du temps
    Bonjour à tous,

    Voilà, j'ai une page web que je teste en local pour le moment avec WAMP. J'ai un formulaire sur une page, je le remplis et une fois que je clique sur le bouton "envoyer", les données sont envoyées par AJAX vers une autre page PHP (que je n'ouvre jamais physiquement), qui traite les données (avec un if !empty $_POST). Je les récupère sans aucun problème, j'arrive à les traiter dans ma BDD.

    En réalité, dans mon formulaire il y a un champ auquel il faut choisir un nombre X (entre 1 et 100), et la page PHP qui traite la réception de données fait X boucles avec des requetes vers ma BDD SQL.
    Le problème, c'est que tout se passe instantanément ! J'aimerais qu'il y ait un temps de décalage d'une minute entre chaque parcours de ma boucle !
    J'ai essayé en PHP d'utiliser la fonction sleep, mais ça semble ralentir tout l'ensemble de ma page web (la première, celle qui contient le formulaire et qui reste ouverte), j'ai meme eu des bugs (car je voulais continuer à faire d'autres opérations sur ma page web en meme temps...)
    J'ai essayé d'intégrer du JS dans la page (qui reste fermée) de traitement en PHP, à la fin du code, avec un setTimeOut, mais là, plus rien ne se passe.

    Une des contraintes c'est que la page qui traite les données doit pouvoir continuer à s'exécuter même si l'utilisateur se déconnecte.

    C'est réaliste ce que j'essaie de faire ? J'ai pensé aux tâches CRON (mais j'ai jamais fait de ma vie), peut etre que ça marcherait ?

    J'aimerais que vous me disiez simplement quelles méthodes employer (dans les grandes lignes, pas m'écrire de code !) et je vous en serai très reconnaissant !

    Je vous en remercie par avance !

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    si je résume.
    2 page, la première envoi des info à la seconde mais tu souhaite que la seconde mette plus de temps pour traiter les info pendant que la 1er continu à fonctionner.

    pour cela il faudrait que tu regarde sur la partie d'appel ajax afin d'être en asynchrone. le mode synchrone oblige le séquentiel donc que tout ce face l'un derriere l'autre en bloquant le traitement suivant tant cela n'est pas fini. l'asynchrone te permettrais de faire plusieurs chose sans déranger le fonctionnement de la page.
    Cependant, il faut bien mesurer le fait que si ton utilisateur et libre de continuer sur ta page principale il faudra que toi de ton côté tu l'empêche de relancer n fois l'appel de la page en ajax sinon tu risque de gonfler tes temps de traitement et les capacités de ton serveur web vont chuter.

    pour l'ajout de javascript côté php, reprend les base de la conception. javascript est un langage côté client et php côté serveur. le javascript est interprété par ton navigateur pas par le serveur web contrairement à php. donc normal que cela ne fonctionne pas.

    Enfin, l'utilisation d'un Chron est faisable, de même que l'utilisation d'un shell le tout via la commande exec de php.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    tu as compris ce que je voulais faire

    un ami m'a parlé du multithreading en PHP avec pthreads, dans ce cas, il ne serait pas nécessaire d'employer du JS sur la page qui traite les données du formulaire apparemment

  4. #4
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    salut

    moi je mettrais une iframe invisible qui serait la target de ton form html
    comme ça le form est soumis dans la frame invisible, et te voila de retour prêt à resoumettre le form
    problème : si tu soumets en rafale toutes les 2 secondes, alors les traitements php relatifs à chaque soumission seront avortés au profit de la toute dernière, donc c'est pas viable

    et si la page php appelait une procédure stockée de ta base sql, ça réglerait le problème non ?

    ou bien un petit exécutable dans le langage de ton choix (qt, WinDev), qui serait appelé par ton php via un call asynchrone et ferait les traitements cadencés...
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/01/2007, 18h19
  2. Aller à une frame en fonction d'un compteur temps
    Par Krysteo dans le forum Flash
    Réponses: 2
    Dernier message: 22/07/2006, 03h06
  3. [Conception] comment changer une entree en fonction de la date
    Par flOZ dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/06/2006, 11h13
  4. Réponses: 3
    Dernier message: 22/05/2006, 18h48
  5. Réponses: 10
    Dernier message: 09/01/2006, 18h39

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