Bonjour à tous,

j'ai un petit soucis sur mon site avec tout mes script java.

Je vais essayer d'expliquer leur but afin de clarifier le prb.

Une alarme se met en route dés le démarrage de la page du site. Toute les x secondes elle va chercher un info précise dans une BD, et si elle trouve ce quelle recherche, elle affiche un message dans une div.

Cette alarme n'es pas toutes seul j'en ai une dizaine, et le soucis, j'ai l'impression que les timming ne sont pas respecter mais cumulé, ou enfin c'est bizarre, ou alors certaine alarmes étant lourde en recherche...

Etant débutant en JS, il est certain que j'ai mal fait mon truc, pourriez vous me guider pour optimiser la chose.

le site et les accés. Il faut être connecté pour pourvoir accéder à la page en question.

la page

id: grafikart
mdp: grafikart123

Voici le PHP central, les alarmes sont lancé en ligne 53 à 57

INDEX.PHP

<?php
if(!defined('PROTECTIONINCLUDE')){die('Accès Interdit');}
/////protection et insertion des base de donnée/////
define('PROTECTIONINCLUDE', TRUE);
include './config/bdall.php';

//////////////////////////////////////////////////
//$mp =$user->data'user_unread_privmsg'];
$pilote = $user->data'username'];
$lastc= $user->data'user_lastvisit'];
if ($mp!=0){$message=1;} else {$message=0;}
$avatar=$user->data'user_avatar'];
$base_avatar="./forum/download/file.php?avatar";
$img_avatar=$base_avatar.'='.$avatar;

?>

<!DOCTYPE html>
<html>
   <head>
      <title>FFS2 V4/membre</title>
      <meta http-equiv="Content-type" content="text/html; charset=utf-8">
      <meta name="viewport" content="initial-scale=1.0, user-scalable=no">

    <style type="text/css">
      html, body, #map-canvas {margin: 0; padding: 0 ;height: 500px;}
      </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

      <!-- JQuery -->
      <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>  
      <!-- Latest Bootstrap compiled and minified CSS -->
      <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/css/bootstrap.min.css">

      <!-- Latest Bootstrap compiled and minified JavaScript -->
      <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/js/bootstrap.min.js"></script>

   </head>
<body>
<?php include './include/membre/tache/scan.php'; ?>
<?php include './include/membre/tache/alarme_session_js.php';?>
<?php include './include/membre/tache/alarme_forum_js.php';?>
<?php include './include/membre/tache/alarme_trac_js.php';?>
<?php include './include/membre/tache/alarme_vol_js.php';?>
<?php include './include/membre/tache/alarme_adm_js.php';?>

.............

Deux script alarmes

<SCRIPT language="Javascript">
function alarme_vol()
    {var request = $.ajax({
                            url: "./include/membre/parts/alarme_vol.php",
                            type: "GET",
                            dataType: "html"
                        });

    request.done(function(msg) {
                                $("#alarme_vol").html( msg );
                                });
        }
setTimeout(alarme_vol,500);
setInterval(alarme_vol,10000);
</script>

<SCRIPT language="Javascript">
function adm_alarme()
    {var request = $.ajax({
                            data:{idf:<?php echo $id_f; ?>},
                            url: "./include/membre/parts/alarme_adm.php",
                            type: "GET",
                            dataType: "html"
                        });

    request.done(function(msg) {
                                $("#adm_alarme").html( msg );
                                });
        }
setTimeout(adm_alarme,500);
setInterval(adm_alarme,60000);
</script>

.

Il se peut que je m'y suis très mal pris et qu'il me faille tout reprendre n'hésitez pas à critiquer sur le fonctionnement global, même or contexte JS.

Merci d'aider un débutant en JS

Flo

2 réponses


Les setInterval ne doivent jamais être dans la fonction qui commandent, car oui comme tu dis c'est cumulé. Donc plus tu relances la fonction plus vite elle ira. Met juste le setInterval après la fonction mais pas dedans c'est tout, après ça ira. Et du coup enlève ton setTimeout qui sera inutile vu que la fonction sera relancé grâce au setInterval, enfin j'espère que tu comprend.

Sinon dis pas script java, car le java et js c'est différent, et après c'est BDD et pas juste BD ^^

flo3376
Auteur

Merci pour ces précision, j'essayerai d'appeler un chat un chat maintenant

dans mon index.php c'est comme ça maintenant

.......
<?php include './include/membre/tache/scan.php'; ?>
<?php include './include/membre/tache/alarme_session_js.php';?>
<?php include './include/membre/tache/alarme_forum_js.php';?>
<?php include './include/membre/tache/alarme_trac_js.php';?>
<?php include './include/membre/tache/alarme_vol_js.php';?>
<?php include './include/membre/tache/alarme_adm_js.php';?>
<SCRIPT language="Javascript">
setInterval(adm_alarme,60000);
//setInterval(mumble,10000);
setInterval(alarme_vol,10000);
setInterval(alarme_track,30000);
setInterval(alarme_forum,30000);
setInterval(session_alarme,60000);
</script>
.........

et dans une de mes alarmes, vue que les autre sont sur le même principe

<SCRIPT language="Javascript">

function alarme_forum()
    {var request = $.ajax({
                            data:{idf:<?php echo $id_f; ?>},
                            url: ".include/membre/parts/alarme_forum.php",
                            type: "GET",
                            dataType: "html"
                        });

    request.done(function(msg) {
                                $("#alarme_forum").html( msg );
                                });
        }
//setTimeout(alarme_forum,500);
//setInterval(alarme_forum,30000);
</script>

mais c'est bizzare, ça marche mais la latence à changer