Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exécuter toute les secondes un script Serveur

    16 août 2018 à 3:11:11

    Bonjour ,

    Si je fait appel à vous c'est car je suis un peu embêter .

    J'ai coder un script en php qui m'incrémente ou décrémente une valeur présente dans une période d'une table donnée .

    L'incrémentation ou la décrémentation dépend de ce que contient la période de ma table hors ce quelle contient est sujet a modification régulière par l'utilisateur du site .Par conséquent il y a souvent des décrémentation et incrémentation qui doivent ce faire sur le contenue de la période a modifier .Cette valeur et ensuite afficher dans une partie de mon site .

    Je suis maintenant confronter à trois problèmes  : Tout d'abord j'aimerais que pour lancer le script je n'ai pas à farfouiller dans mon dossier localhost et lancer mon code php qui ouvre une fenêtre :  tout ça dans l'idéal devrais ce faire par le serveur sans que l'utilisateur du site puisse y voir quoi que ce soit .

    Deuxième problème la périodicité  : si je veux lancer mon script il faut que je recharge la page , la mon serveur aura donc a lancer régulièrement le script (toute les 1 a 10 secondes pour garder une bonne dynamique avec l'utilisateur du site) pour faire en sorte que le calcul ce fasse bien et que l'utilisateur n'est pas des infos ancienne et donc erronée .Comment faire ?

    Troisième gros point et non des moindre comment faire en sorte que les infos soit afficher sans recharger ma page dans mon site ? Ajax ? Je n'y connais rien en Ajax alors si c'est une solution pour vous m'aiguillez vers un tuto pas trop complexe et cours d'apprentissage me serais agréable .

    Je vous remercie pour votre aide ! A + les Zér0s  ;) .

    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2018 à 3:41:55

      Bonjour,

      Pour ton premier problème, et même ton second, tu parles sans doute d'une tâche cron. Une tâche cron est une ligne de commande que tu peux lancer à des moments précis, périodiquement et de façon automatique. Cependant, le minimum de délais est de 1 minute. On ne peut pas aller en bas. Il existe des workaround pour exécuter des tâches à une interval de plusieurs secondes, mais je ne le recommande pas.

      En fait, je prendrais le problème autrement. Pourquoi as-tu besoin que ça s'actualise à un interval aussi serré ? Si tu as besoin de ça, c'est que ton application est mal pensé. Parce que non seulement le système de cron ne permet pas de faire ce que tu veux, mais en plus, il y a un réel soucis de performance. Un script qui s'exécute continuellement à un rythme aussi serré et soutenu pourra avoir de grave conséquence sur le serveur.

      Je t'invite donc à revoir ton application. Par exemple, pourquoi ne peux-tu pas faire les updates nécessaires qui découlent des actions de tes visiteurs, au moment même où ils font les actions ? Je lance l'idée, mais je ne sais pas c'est quoi ton besoin réel. Si tu explique clairement ton besoin, on pourrait essayer de trouver quelque chose ensemble.

      Pour ton troisième problème, oui, c'est en AJAX qu'il faudra y aller. Il me semble y avoir vue des cours sur ce site qui pourraient très bien t'aider. Personnellement, j'ai bien aimé le combo jQuery / Ajax puisque j'ai trouvé les codes plus clairs. Après, il n'y a rien comme de se plonger tête première pour voir comment on va nager !

      N'hésite pas s'il y a quoi que ce soit !

      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2018 à 6:34:00

        Bonjour,

        Si je comprends bien le problème exposé (mais une fois de plus je souligne l'importance d'avoir une expression fonctionnelle précise avant de commencer à structurer la réponse d'écriture logicielle), la question est d'être sur que les modifications d'un utilisateur n (n au sens temporel)  du site soit mises à jour pour l'utilisateur n+1 suivant.

        Et comme trycuz anticipe que son site aura beaucoup de visiteurs, il règle cette question par le temps de mise à jour par script de son contexte d'exploitation le plus court possible.

        Est-ce bien cela?

        Si oui, suis le conseil de Luigi_home quand il te dit tout simplement de faire cette mise en cohérence de tes données au moment où l'utilisateur n agit.

        Sinon, il faut que tu sois plus précis sur ton besoin. Donne un exemple si tu veux.

        A toi

        • Partager sur Facebook
        • Partager sur Twitter
          17 août 2018 à 11:33:45

          Tout d'abord , merci pour vos réponse .

          Vous aviez totalement raison ! Je n'y est même pas penser mais un  "include("MonScript.php");" dans les page qui traiter les modification des contenu de mes tables étais suffisant !

          Par contre pour Ajax je suis bloquer ... J'aimerais ne pas avoir à apprendre tout un cour sur Ajax pour seulement deux petite broutille de rien du tout ...

          -
          Edité par trycuz 17 août 2018 à 11:35:03

          • Partager sur Facebook
          • Partager sur Twitter
            17 août 2018 à 12:45:26

            Malheureusement même pour une petite broutille il te faut certaines connaissant. Déjà faire de l'ajax c'est faire du code asynchrone en js et donc de réfléchir d'une manière différente de php. Sinon tu va avoir des soucis du genre "mais pourquoi ma variable est vide alors que l'appel ajax est lancé ?" (question qui revient souvent sur ce forum :) )

            Comme ajax est fait côté js front, il te faut donc apprendre un minimum sur js et sur la manipulation du dom. Par contre je ne rejoins pas l'utilisation de jquery si tu n'utilise que ajax et 2 3 modification du dom. Charger jquery c'est bien si tu utilise beaucoup d'élément de cette lib ou si tu as besoin d'une compatibilité avec ie 6 7 et peut-être 8. Sinon voici 2 sites qui font le parallèle jquery/js classique :

            Pour jquery de base : http://youmightnotneedjquery.com/

            Pour les plugins de jquery : http://youmightnotneedjqueryplugins.com/

            Sachant que pour l'ajax tu as maintenant la méthode fetch qui est plus simple :

            // Avant
            var request = new XMLHttpRequest();
            request.open('GET', '/my/url', true);
            
            request.onload = function() {
              if (request.status >= 200 && request.status < 400) {
                // Success!
                var data = JSON.parse(request.responseText);
              } else {
                // We reached our target server, but it returned an error
            
              }
            };
            
            request.onerror = function() {
              // There was a connection error of some sort
            };
            
            request.send();
            // Maintenant
            fetch('/your/uri')
              .then(function(response) {
                return response.json();
              })
              .then(function(myJson) {
                console.log(myJson);
              });

            Si tu veux apprendre le js tu as ces cours si tu veux : https://www.grafikart.fr/formations/debuter-javascript

            Avec une vidéo intéressante : "Apprendre le javascript depuis le php" ce qui permet d'avoir les bases du js sans tout suivre

            Je te conseil quand même de suivre dans la formation les vidéos :

            https://www.grafikart.fr/formations/debuter-javascript/scope-hoisting

            https://www.grafikart.fr/formations/debuter-javascript/this

            Qui ont des particularité en JS

            • Partager sur Facebook
            • Partager sur Twitter
              18 août 2018 à 9:33:40

              Merci beaucoup pour ton aide ;)
              • Partager sur Facebook
              • Partager sur Twitter

              Exécuter toute les secondes un script Serveur

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown