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 :

Temps de traitement de mon fichier


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    graphiste
    Inscrit en
    Octobre 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : graphiste

    Informations forums :
    Inscription : Octobre 2015
    Messages : 56
    Points : 30
    Points
    30
    Par défaut Temps de traitement de mon fichier
    Bonjour,

    Débutant en js, j'ai une question, sur ma page j'ai un champ de recherche qui exécute un fichier php et qui me renvoie dans une div le résultat, cela fonctionne mais le temps de traitement est relativement long (references dans ma BDD entre 1 et 10000000) de plus mon curseur dans mon champ à du mal à inscrire ma demande lorsque ma reference est longue, c'est du surement au fait que dans mon fichier js je lui demande de traiter à partir du 2eme caractère.

    Ma question est il possible de traiter l'information lorsque j'arrête de taper ou après un certain temps ?

    Ou dois-je explorer d'autres solutions le résultat étant que j'ai besoin d'avoir mon formulaire et sa réponse sur la même page

    Pour le formulaire
    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
     
    .....
    <script> var path = '';</script>
                <script  src="./recherche.js"></script>
     
    </head>
    <body>
    		<form method="POST" action="">
     
    			<label for="lof"><strong>LOF du chien</strong></label><br/>
    			<input id="lof" type="text" name="lof" /><br/><br/>
     
    		</form>	
     
    			  <div id="results"></div>
    .......
    la recherche avec js
    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
     
    $(document).ready( function() {
     
      $('#lof').keyup( function(){
        $field = $(this);
        $('#results').html(''); 
     
       if( $field.val().length > 1 )
        {
     
          $.ajax({
      	type : 'POST', 
    	url : '/ge/lof.php' , 
    	data : 'lof='+$(this).val() , 
    	beforeSend : function() { 
     
    	},
    	success : function(data){ 
     
    		$('#results').html(data);
    	}
          });
        }		
      });
    });

    Merci pour vos réponse et vos aides

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    Bonjour,
    (...)mais le temps de traitement est relativement long (references dans ma BDD entre 1 et 10000000)
    mazette il te faudrait peut être revoir la structure/requête !
    Ma question est il possible de traiter l'information lorsque j'arrête de taper ou après un certain temps ?
    la réponse est oui.

    Le principe est relativement simple et utilise la méthode setTimeout.

    Je te mets un petit exemple du principe
    Code html : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Envoi en différé</title>
    <meta name="Author" content="NoSmoking">
    <style>
    html, body {
      margin: 0;
      padding: 0;
      font: 1em/1.25 Verdana, sans-serif;
    }
    #main {
      max-width:60em;
      margin:auto;
    }
    h1, h2, h3 {
      color: #069;
    }
    label {
      display:inline-block;
      width:4em;
      margin-right:1em;
    }
    p {
      font-size: 1.25em;
      margin-left:1em;
    }
    label:before {
      content: ":";
      float: right;
    }
    #saisie {
      font: 1em/1.25 Verdana, sans-serif;
      min-width: 20em;
      margin: 0;
    }
    #envoi {
      color: #0d0;
    }
    #retour {
      color: #d00;
    }
    </style>
    <script>
    var iTimer = null;
    var delai = 750;      // à ajuster suivant besoin
    var minLength = 2;    // longueur mini pour requête
    var oldParam = '';
     
    function sendValue(param) {
      // clear action en attente
      clearTimeout(iTimer);
      //(**) clear l'envoi
      document.getElementById('envoi') .innerHTML = '';
      // pas d'envoi pour rien
      if (oldParam !== param && minLength <= param.length) {
        // sauve valeur
        oldParam = param;
        // met en « attente » l'action
        iTimer = setTimeout(function () {
          //--------------------------
          // ICI l'envoi des données
          //--------------------------
          // ex : simulation
          //--------------------------
          //(**) affiche l'envoi
          document.getElementById('envoi') .innerHTML = encodeURIComponent(param);
          document.getElementById('retour') .innerHTML = '';
          //(**) simulation retour requête
          setTimeout( function(){
            document.getElementById('envoi') .innerHTML = '';
            document.getElementById('retour') .innerHTML = param.split('').reverse().join('');
          }, 500);
        }, delai);
      }
    }
    </script>
    </head>
    <body>
    <div id="main">
      <h1>Envoi en différé</h1>
      <p><label>Saisie</label><input id="saisie" type="text" onkeyup="sendValue( this.value)"></p>
      <p><label>Envoi</label> <span id="envoi"></span></p>
      <p><label>Retour</label> <span id="retour"></span></p>
    </div>
    </body>
    </html

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    graphiste
    Inscrit en
    Octobre 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : graphiste

    Informations forums :
    Inscription : Octobre 2015
    Messages : 56
    Points : 30
    Points
    30
    Par défaut Merci
    Ah oui ok je vois, je vais tester cette possibilité, j'en étais arrivé à me dire que j'allais mettre un bouton car si je fais un formulaire php et que j'envoie l'information complète au fichier php le temps d'exécution n'est plus que d'environ 2 seconde au lieu de 6 voir 7. Je cherchais autre chose car je me doutais qu'avec le .keyup et mon length le traitement commencerait à chaque levé du clavier.

    Merci pour cette infos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SAX] Temps de traitement inquiétant sur fichier volumineux
    Par Kihmé Xs dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 13/05/2012, 02h32
  2. Traitement d'un fichier son en temps réel
    Par strattist dans le forum MATLAB
    Réponses: 0
    Dernier message: 08/11/2011, 19h07
  3. optimisation de temps de traitement xml/xslt
    Par Erwy dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/05/2004, 16h08
  4. __declspec(dllexport) dans mon fichier header mais...?
    Par Jasmine dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 03/03/2004, 18h00

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