begin process at 2012 05 29 21:22:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

Problème de script faisant ralentir ie


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de script faisant ralentir ie

mercredi 5 août 2009 à 16:33:28 | Problème de script faisant ralentir ie

gregusse

Bonjour !

J'ai un problème sur un script que j'ai codé. J'ai le message de IE "un script fait ralentir internet explorer ...". Apparemment c'est à cause du nombre d'instructions (au bout de 5000000 ie fait apparaitre le message). Il n'apparaît pas régulièrement mais je souhaite qu'il n'apparaisse plus du tout.

Voila le message s'affiche de temps en temps lorsque je clique sur le bouton enregistrement qui appelle le submit à la fin de la fonction javascript. Avant le submit il y a un contrôle qui ai fait sur les différentes colonnes d'un tableau :

/**
* Fonction qui permet d'enregistrer une trame demande Essai.
*/
function enregistrementTrame(etat) {
if (checkDataM2M12() && checkDateMois() && checkSelectEdp()) {
//si etat == 1 on ajoute la trame à la base en etat Projet sinon en etat Envoyée.
if (etat == 1) {
document.getElementById('etatEnregistrement').value = "Projet";
document.getElementById('forward').value = document.getElementById('typeAction').value;
var texteAlert = "<%=keys.getMessage("js.enregistrer.trame")%> " + " ?";
if (confirm(texteAlert)) {
activeChamps();
}
} else if (etat == 2){
document.getElementById('etatEnregistrement').value = "Envoyée";
document.getElementById('forward').value = document.getElementById('typeAction').value;
var texteAlert = "<%=keys.getMessage("js.envoyerCOPM.trame")%> " + " ?";
if (confirm(texteAlert)) {
activeChamps();
}
} else {
document.getElementById('forward').value = "toPreview";
activeChamps();
}
document.forms['demandeEssaiCNPEform'].submit();
}
}

//Permet d'activer les champs disabled pour prendre en compte la valeur.
function activeChamps() {
document.getElementById('hiddenLibelleEdp').value =
document.getElementById('selectEdp').options[document.getElementById('selectEdp').selectedIndex].text;
document.getElementById('calendar').disabled = false;
}

//Vérifie si une Edp est sélectionnée dans la liste déroulante.
function checkSelectEdp() {
var bIsSelect = true;
if (document.getElementById("selectEdp").value == "") {
var texteAlert = "<%=keys.getMessage("js.error.champ.obligatoire")%> " + "Tranche (EDP)";
alert(texteAlert);
bIsSelect = false;
}
return bIsSelect;
}

//Vérifie si le mois est au bon format.
function checkDateMois() {
var moisDe = document.getElementById("textMoisDe").value;
var bIsDateMois = true;
if (!oUtils._isFormatMois(moisDe)) {
var texteAlert = "<%=keys.getMessage("js.error.trame.mois.format")%> " + "DU MOIS DE";
alert(texteAlert);
bIsDateMois = false;
}
return bIsDateMois;
}

//Vérifie le tableau contenant les tramesEssaiPlanifM2M12.
function checkDataM2M12() {
var m2m3 = document.getElementsByName("textDateEnvisageeM2ToM3");
var m4m6 = document.getElementsByName("textDateEnvisageeM4ToM6");
var m7m12 = document.getElementsByName("textDateEnvisageeM7ToM12");
var dateTot = document.getElementsByName("textPlageToleranceDateTot");
var dateTard = document.getElementsByName("textPlageToleranceDateTard");
for (var i=0, len = m2m3.length; i < len; ++i) {
if (m2m3[i].value != "" && !oUtils._isDate(m2m3[i].value)) {
var texteAlert = "<%=keys.getMessage("js.error.trame.date.format")%> " + "Date envisagée M+2 à M+3";
alert(texteAlert);
return false;
} else if (m4m6[i].value != "" && !oUtils._isDate(m4m6[i].value) ) {
var texteAlert = "<%=keys.getMessage("js.error.trame.date.format")%> " + "Date envisagée M+4 à M+6";
alert(texteAlert);
return false;
} else if (m7m12[i].value != "" && !oUtils._isDate(m7m12[i].value)) {
var texteAlert = "<%=keys.getMessage("js.error.trame.date.format")%> " + "Date envisagée M+7 à M+12";
alert(texteAlert);
return false;
} else if (dateTot[i].value != "" && !oUtils._isDate(dateTot[i].value)) {
var texteAlert = "<%=keys.getMessage("js.error.trame.date.format")%> " + "Plage de tolérance Date au plus tôt";
alert(texteAlert);
return false;
} else if (dateTard[i].value != "" && !oUtils._isDate(dateTard[i].value)) {
var texteAlert = "<%=keys.getMessage("js.error.trame.date.format")%> " + "Plage de tolérance Date au plus tard";
alert(texteAlert);
return false;
}
}
return true;
}


Voila le code qui est appelé avant le submit. il y a sûrement beaucoup choses à améliorer, c'est sûr ...
Par contre, le message apparaît lorsque j'effectue des modifs sur la page avant.

Si quelqu'un peut m'aider, c'est avec joie !

mercredi 5 août 2009 à 16:56:03 | Re : Problème de script faisant ralentir ie

Bul3

Membre Club

Bonjour,

comment on teste ?
il y a de l'asp, comment on devine ce que ça génère ?

ensuite, il faut qu'on saisisse le html ?
correspondra-t-il à ce que vous avez chez vous ?

>>le message apparaît lorsque j'effectue
>>des modifs sur la page avant.
sur la page précédente ?
dans ce cas c'est la page précédente
qu'il nous faudrait
ou alors je n'ai pas compris ?

donnez nous l'extrait du html résultant
le nécessaire, tout le nécessaire,
mais rien que le nécessaire !
3698574 lignes ça décourage.

au 1er coup d'oeil, je n'ai que survolé et encore,
pas vu grand chose qui expliquerait ce
temps de traitement trop long
le for peut être ?
for ( var i=0; i<m2m3.length; ++i) {
je dis peut-être exactement le contraire
de ce qu'il faut.
mais bon... perso je ne vois quasi
rien sans tester.

Cordialement [mon Site] [M'écrire] Bul

mercredi 5 août 2009 à 17:42:39 | Re : Problème de script faisant ralentir ie

gregusse

Oui c'est vrai, excusez moi. Mais mon code est assez long et comme j'ai du mal à localiser l'erreur je ne voulais pas mettre plein de code. Je vais essayer de synthétiser

Je développe en J2EE avec struts.

En fait il y a 2 tableaux dans cette page :
J'ai fais un objet javascript pour le premier. C'est un tableau dynamique. Je peux ajouter des lignes en rentrant des données dans un autre et en cliquant sur ajouter.

Dans ce tableau l'utilisateur peut ajouter des lignes en cliquant sur "ajouter" :

<a id="btnAjouter" href="javascript:ajouter();" class="btntxt">Ajouter</a>;

Ca appelle ensuite la méthode de l'objet javascript "_addLine()"

_addLine: function()
{
//On vérifie les différentes règles.
if (!this._checkMaxLine())return;
if (!this._checkData())return;
var iIndex = this._lineEmpty();
var tableWithTitle = this._getTableWithTitle();
this._fillLine(iIndex);
tableWithTitle[iIndex].style.display = "block";

},

il y a un traitement derrière qui vérifie les données du tableau.
Ce qu'il faut savoir c'est qu'au chargement de la page je charge 20 lignes dans le tableau (C'est une liste instancié en java dans l'action). J'utilise le style.display de l'élément pour masquer une ligne ou la faire apparaître. Donc les 20 lignes sont toujours présentent sur la page elles sont simplement cachées grâce a style.

Le deuxième tableau à 6 lignes et 10 colonnes. Je peux rentrer des données dedans. Chaque balise <td> contient des balises <html:text>. Les données sont vérifiées en javascript dans le code du message précédent.

Le problème de mon message n'intervient que quand je manipule le premier tableau. Mais ce que je ne comprends pas c'est que le message apparaît uniquement quand je clique sur enregistrement qui est une fonction qui n'a rien à voir avec la fonction ajouter.

C'est difficile d'envoyer du code. Pour l'ajout d'une ligne j'ai différentes vérifications à faire et ça représente pas mal de ligne. Il faudrait presque que j'envoie mon code global comme l'erreur peut intervenir de n'importe quelle fonction ?

Je pense que ca ne sert pas à grand chose mon explication . S' il y a moyen d'envoyer pas mal de code pour que quelqu'un puisse regarder, c'est avec joie.
Merci






jeudi 6 août 2009 à 05:27:11 | Re : Problème de script faisant ralentir ie

Bul3

Membre Club

plutôt une adresse où tester ?
et vous avez debugger ?

jeudi 6 août 2009 à 11:00:00 | Re : Problème de script faisant ralentir ie

gregusse

Mon problème est qu'il s'agit s'une application que je développe en local donc pas d'adresse où tester.

Oui sinon j'ai débuggé mais je ne trouve pas où se situe mon problème. J'ai même changé le clé de la base de registre pour passer les instructions à 6000000 et dans ce cas ça fonctionnne, je n'ai plus le message. Mais le problème est que je ne peux pas dire au client de faire ça.

Merci pour votre aide. Je vais essayer de reprendre mon code.

jeudi 6 août 2009 à 11:10:10 | Re : Problème de script faisant ralentir ie

Bul3

Membre Club

il vous faut localiser précisément le souci
ne faire que l'extrait du nécessaire :
un champs et une fonction ?
d'ailleurs en procédant ainsi on résout
souvent tout seul.



Cette discussion est classée dans : var, document, value, getelementbyid, textealert


Répondre à ce message

Sujets en rapport avec ce message

Problème cahce avec IE [ par goulouk ] Bonjour,je voudrais savoir comment empécher de mettre une page en cache, ou alors obliger IE à recharger la page sans la prendre dans le cache.Je vous incrementer [ par tonytruand ] bonjour;j'ai un souci d'incrémentation. Dans une function ci dessous, j'aimerai que le i se traduise par 0 puis 1 puis 2 etc.J'ai bien essayer le  for interdire mots [ par tonytruand ] Bonjour à la communauté !j'ai besoin de votre aide, en effet je cherche à retirer dans un texte, par exemple, tous les : le la les du en ect. J'ai pou Problème Firefox & document.getElementById [ par leviz ] Bonjour,J'ai un problème avec Firefox, il ne me recupère pas les valeurs de mon formulaire et pourtant sous IE ça fonctionne très bien.        alert( envois de formulaire ajax [ par Annadrill ] bonjour,voilà, j'aimerais modifier la fonction que je vous mets la dessous, de manière a pouvoir l'utiliser avec n'importe quel formulaire, en précisa récuperer données table [ par anasjava ] Je suis débutant en java  et  j'ai  un petit souci, je remli une table par des donnée insertion des donne javascripte dans une bdd [ par somapi ] salue les amies j'ai un pFe qui consiste à crée une ma interactive bon, ma problème c'est que j'ai des donne dans ma base j aimerait bien récupère ces Problème calcul "IF" (conditionnel) [ par canascat008 ] Bonjour a tous, je suis un petit morpion dans le monde du codage et je bute sur une formule !! je suis en train de coder un formulaire pour calculer Vérification formulaire [ par maha1987 ] salut tout le monde, j'ai un formulaire html et css mais le controle javascript ne fonctionne pas j'ai essayé même avec le jquery mais toujours le mê Redimentionnement et Repositionnement d'un DIV [ par fabiano13 ] Bonjour, Je voudrais superposer un div d'une dimension précise sur une vidéo et lorsque je suis en mode "plein écran" ce div devrait se redimensionne


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,212 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales