Temps de chargement des pages PHP
Bonjour,
J'ai identifié un gros problème sur mon appli .... Le temps de chargement des pages est d'environ 20sec. !!!!
Le problème est dû au chargement du menu qui s'affiche via une fonction récursive! Si j'enleve cette fonction, le chargement des pages passe de 20sec. à 1,4sec.!!
Qqun saurait-il optimiser cette fonction pour que le temps de chargement diminue!?
PS: J'ai essayé de jouer avec le buffer via ob_start() ob_flush() ob_end_flush() mais ça ne marche pas!
Voici le code de ma fonction récursive:
Code:
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
|
<?php
function treeView($parent, $niveau, $array1) {
include 'Vue/include/bootstrap_iconColor_visitor.php';
include 'Vue/function/uppercase.php';
$html = "";
$niveau_precedent = 0;
$metier = "";
$uri = "";
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if (!$niveau && !$niveau_precedent) $html .= "<ul class='dropdown-menu jqueryFadeIn'>";
foreach ($array1 as $noeud) {
$id = substr($noeud['idMenu'], 4);
$libelle = utf8_decode(htmlspecialchars_decode($noeud['libelle']));
$idRubrique = $noeud['idRubrique'];
$cmplt = $noeud['complement'];
if ($parent == $noeud['idParent']) {
if ($niveau_precedent < $niveau) $html .= "<ul class='dropdown-menu jqueryFadeIn'>";
$html .= "<li class='dropdown-submenu'>"
. "<a data-toggle='dropdown' tabindex='-1' href='#'>";
if ($noeud['typeMP'] == "P") {
$html .= "<a href='$uri' class='link'>"
. " " . "<span class='$iconPage'></span><span class='$colorPage'>"
. " " . ucfirst(preg_replace(array_keys($arrayMarque), array_values($arrayMarque), strtolower($libelle)))
/*. " " . $niveau
. "-" . $parent
. "-" . $noeud['idMenu']
. "-" . $noeud['idParent']
. "-" . count($noeud['idParent'])
. " - " . $noeud['typePage']*/
. " " . "</span><span class='$icon2' id='caret'></span>"
. "</a>";
} elseif ($noeud['typeMP'] == "M") {
$html .= "<a href='#' class='link'>"
. "<span class='$icon1'></span>"
. " " . ucfirst(preg_replace(array_keys($arrayMarque), array_values($arrayMarque), strtolower($libelle)))
/*. " " . $niveau
. "-" . $parent
. "-" . $noeud['idMenu']
. "-" . $noeud['idParent']
. "-" . count($noeud['idParent'])*/
. " " . "<span class='$icon2' id='caret'></span>"
. "</a>";
}
$html .= "</a>";
$niveau_precedent = $niveau;
$html .= treeView($noeud['idMenu'], ($niveau + 1), $array1);
}
}
if (($niveau_precedent == $niveau) && ($niveau_precedent != 0)) $html .= "</ul></li><li class='divider'></li>";
else if ($niveau_precedent == $niveau) $html .= "</ul>";
else $html .= "</li><li class='divider'></li>";
return $html;
} |
Merci de votre aide,