Un script est peut-être occupé...

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Un script est peut-être occupé...

Message par Ymai »

Bonjour
Je développe une application qui permet aux enseignants d'une école de fournir, en ligne, les notes à indiquer dans les carnets des élèves.
Cette application utilise la bibliothèque jQuery et fonctionne sans souci sous Firefox, Chrome, Chromium, Opera et Safari. Testée sur des versions relativement récentes >8 d'Internet Explorer, tout va bien.

Le problème
Toutefois, certains des utilisateurs sont restés calés sur des versions 7 de IE. Et là, les soucis sont présents.
L'application est extrêmement lente; la frappe de quelques touches au clavier est une gageure. Et, très régulièrement, apparaît une boîte de dialogue indiquant que "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.".
Je me tue à répéter qu'il faut fuir IE, mais certains utilisateurs savent à peine distinguer Internet Explorer d'Internet. Quant à évoquer l'installation d'un vrai navigateur, on nage dans le rêve. C'est la réalité avec laquelle il faut composer.
J'aimerais donc essayer de comprendre d'où vient ce problème.

Ma question:
Existe-t-il des outils inconnus de moi et qui permettraient de fliquer les scripts jQuery (ou Javascript en général)?
Je précise que la console Firebug dans FF ne montre rien d'anormal, même en pas-à-pas, sur les pages où IE se prend les pieds dans la carpette. Tous les scripts présents sur la page se terminent en temps et en heure (disons même en secondes). La console web de FF ne donne aucun message inquiétant non plus.
Existerait-il mieux que Firebug, dans ce domaine?
Je n'ai malheureusement pas de version de démo dont je pourrais fournir une adresse en ligne.

Merci de m'avoir lu jusque là.
Votre Navigateur : Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: Un script est peut-être occupé...

Message par calimo »

Hello,

Tu as le script de John Resig qui permet de profiler le code jQuery, et de détecter où le temps est "perdu". Les résultats peuvent être assez différents d'un navigateur à un autre.
De manière plus générale, si tes scripts prennent du temps, il faut essayer de les exécuter de manière asynchrone pour ne pas bloquer l'utilisateur, par exemple avec un setTimeout. :wink:
Votre Navigateur : Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Re: Un script est peut-être occupé...

Message par Ymai »

Super! Ça a l'air d'être exactement ce qu'il me faut.
Petite précision: il n'y a pas franchement de scripts concurrents dans mon code. Et tout est exécuté en très peu de temps (max 1 ou 2s quand le CPU est très chargé).
Je reviens avec les résultats dès que je serai moins à la bourre.
Merci pour l'information.
Votre Navigateur : Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Re: Un script est peut-être occupé...

Message par Ymai »

Ah ben, c'est la mouise. Des 404 sur tous les liens. John Resig aurait disparu?
En fouillant un peu, je tombe sur ceci: https://github.com/osteele/jquery-profile
Yapluka
Votre Navigateur : Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Re: Un script est peut-être occupé...

Message par Ymai »

Bonjour
Juste pour conclure sur ces tests...
Le profileur alternatif que j'avais trouvé (https://github.com/osteele/jquery-profile ) ne donne pas beaucoup d'informations. Et certainement rien d'inquiétant au niveau de la durée des scripts. Tout se termine en moins d'une seconde en localhost sur mon fidèle P IV (3GHz).
J'ai poussé un peu plus loin avec le "Profiler" de firebug qui permet de se promener sur la page et qui enregistre les temps cumulés sur chacune des fonctions appelées.
Le nombre d'appels aux fonctions (principalement jQuery) est assez impressionnant pour les quelques dizaines de secondes à toucher à tous les boutons (plus de 13000), mais le temps cumulé pour tout cela reste très faible (735ms). Quant à mes propres fonctions -tout au plus une dizaine de lignes de code chacune, leur temps d'exécution atteint quand même parfois un peu plus de 1ms. Je ne vais pas trop me préoccuper d'optimiser.

Comme je tiens à garder un minimum de crédibilité, je me retiens vraiment très fort pour ne pas incriminer exclusivement IE7. En tous les cas, tous les utilisateurs qui, sur le même poste, ont renoncé à IE7 n'ont plus signalé de souci. Mais c'est sans doute un hasard.
Votre Navigateur : Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 0 invité