MOD Vitesse de la recherche
[pompage.git] / js / yopyop.js
index dae2cee..9fa85a4 100644 (file)
@@ -66,6 +66,10 @@ function detailFilm(id)
       detail.style.display = "table"\r
 }\r
 \r
+// la date de la dernière recherche\r
+var derniereRecherche = new Date();\r
+derniereRecherche.setMinutes(derniereRecherche.getMinutes() - 1);\r
+var motifDerniereRecherche = ""\r
 \r
 /**\r
   * Effectue une recherche, n'affiche que les films qui contiennent le motif recherché
@@ -73,6 +77,24 @@ function detailFilm(id)
   */\r
 function doRecherche()\r
 {\r
+   // le motif à chercher\r
+   var motif = document.getElementById("recherche").value\r
+   if (motif == motifDerniereRecherche) return;\r
+   \r
+   // empèche de faire deux recherches successive en moins de 800ms\r
+   var now = new Date();\r
+   if (now.getTime() < derniereRecherche.getTime() + 800)\r
+   {\r
+      // si une recherche à était demandé mais n'a pu aboutir alors on la refait dans certain temps\r
+      setTimeout("doRecherche()", 810 - (now.getTime() - derniereRecherche.getTime()));\r
+      return;\r
+   }\r
+   motifDerniereRecherche = motif;\r
+   derniereRecherche = now;\r
+   \r
+   dump ("recherche : " + motif + "\r\n");\r
+   debut = new Date().getTime()\r
+\r
    var afficherTout = false;\r
    // si aucun choix n'est fait pour la recherche on affiche tout\r
    if (!document.getElementById("checkRechercheTitre").checked \r
@@ -85,13 +107,11 @@ function doRecherche()
    var nbFilm = 0; // pour compter le nombre de film total\r
    var nbFilmAffiche = 0; // pour compter le nombre de film affiché\r
       \r
-   // le motif à chercher\r
-   var motif = document.getElementById("recherche").value\r
-   var rechercheRegExp = new RegExp(".*" + motif + ".*", "i")\r
+   var rechercheRegExp = new RegExp(motif, "i")\r
    \r
    var liste = document.getElementById("liste")\r
    var lignes = liste.childNodes\r
-   for(i = 0; i < lignes.length; i += 2)\r
+   for(var i = 0; i < lignes.length; i += 2)\r
    {\r
       nbFilm++;\r
       \r
@@ -125,6 +145,9 @@ function doRecherche()
    \r
    // mise à jour de l'affichage du nombre de film total/affiché\r
    document.getElementById("nbFilms").textContent = nbFilmAffiche + " / " + nbFilm + " film" + (nbFilm > 1 ? "s" : "")\r
+   \r
+   fin = new Date().getTime()\r
+   dump ("Temps : " + (fin - debut) / 1000 + "s\r\n\r\n")\r
 }\r
 \r
 /**\r