Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-12-2008 19:12:22

Samux
Nouveau membre
Date d'inscription: 22-12-2008
Messages: 1

un bug ralentit mon site web [dojo]

Bonjour, big_smile
je suis nouveau dans ce magnifique forum .
J'ai un problème au niveau de mon site web précisément dans dojo.
Lorsque j'ai hébergé mon site lors de l'ouverture de site j'ai remarqué que le navigateur se plante et j'attends plus que 2 min pour que ma page soit visible .
bon pour information j'utilise Zend framework et la derniere version de dojo,
je travaille avec le module dojox.charting pour construire des graphes et j'utilise également dojo dans l'ensemble de mes formulaires et mes applications , alors je veux savoir est ce que le probleme viens d'une fausse configuration de dojo ou bien dojo génére ce genre de probleme ? .
parfois le navigateur firefox m'affiche ce message :
"Un script sur cette page est peut-être occupé ou ne répond plus. Vous pouvez arrêter le script maintenant ou attendre pour voir si le script se terminera.
Script : http://xxxxx.com/public/js/dojo/dojo/dojo.js:16"
alors j'ai essayé de s'assurer que le probleme vient pas de mon code ou bien de ma base de données et j'ai fais un profiling qui m'a fourni ces résultats :
"temps total execution de la page: 0.12085795402527 avec temps total bdd: 0.037449598312378, nbRequetes : 23
requete la plus longue : 0.015015125274658"
est ce que ce résultat est normal?? :s

Hors ligne

 

#2 22-12-2008 19:35:59

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: un bug ralentit mon site web [dojo]

non lorsque tu as ce genre de pb c'est du pur javascript

cela ne se produit que lorsque ton client a déjà reçu la réponse du serveur et que le script JS qu'il exécute est trop long.

deux cas
le premier c'est lorsque tu charge trop d'éléments. par exemple j'ai un arbre contenant 36 000 éléments qui compte chacun 10 éléments. et par défaut mon script déploie tout l'arbre. dans ma lib l'arbre est une hiérarchie de UL LI contenant des div contenant une table. dans ce cas la lorsque le client reçois les donnée Ajax il crée 36000 Li dans le UL pour chacun il cré un div contenant une table avec un tr et 3 td une avec une classe pour l'icone + l'autre pour l'icone de l'objet et la troisème pour le texte
puis pour chaque élément ul crée un UL pour les fils comme par défaut j'ai demandé à ce qu'il soient déployés il vas faire la même opération avec les fils et changer l'icone + en moins
cela fait 396 000 li 396 000 table 396 000 tr 1 188 000 td le script mets beaucoup trop de temps pour le moteur JS et on obtient ce message. Ici il n'y a pas d'erreur dans le script mais un pool de donnée important et un traitement inapproprié. dans un tel cas deux solution traiter les données par lot (ne pas afficher tout l'arbre)
ou alors définir un autre traitement (afficher l'arbre rétracté) ou les deux combinée. (c'est un cas réel que j'avais anticipé mais que la MOA à demandé de mettre en œuvre tout de même. Résulta prévissible IE 7 et FF Affiche le message et IE6 plante simplement.

2eme cas pas de traitement long à priori ni beaucoup de données. là il est fort à parrié qu'il y a une récursivité ou une boucle quelque part. là c'est une erreur de programmation et il faut corriger la chose.

Voilà donc rien à voir avec le serveur et les requêtes SQL
enfin 23 requêtes cela me parait beaucoup si tu intéroge une table puis une table liée tu as tout intérêt à faire une jointure tu auras alors le résultat en une seule requête.

A+JYT

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages