Accueil > Forum > > > > One more "Stack overflow at line: 0":-/
One more "Stack overflow at line: 0":-/
vendredi 24 avril 2009 à 10:48:09 |
One more "Stack overflow at line: 0":-/

mono_neurone
|
Salut à tous. J'ai beau chercher je ne vois pas d'ou vient le probleme avec mon bout de code. En gros j'ai une fonction récursive (appelé sur le onload de chaque image) que j'appele pour charger une image apres l'autre. De temps a autre je reçois un stack overflow que je ne m'explique pas. Comme il y a plus d'idées dans X tetes que dans une ... Voici mon bout de code: <code> try { var ImgPathArr = new Array( 'Btns/BtnAccueilNB.gif', 'Btns/BtnContactNB.gif', 'Btns/BtnGalerieNB.gif', 'Btns/BtnLiensNB.gif', 'Btns/BtnNewsNB.gif', 'Btns/BtnPrestaNB.gif', 'Btns/BtnAccueilCLR.gif', 'Btns/BtnContactCLR.gif', 'Btns/BtnGalerieCLR.gif', 'Btns/BtnLiensCLR.gif', 'Btns/BtnNewsCLR.gif', 'Btns/BtnPrestaCLR.gif', 'Img/bord.png', 'Img/DegraDEntete.gif', 'Img/LesJongleriesDeNoar.gif', 'Img/PostIt.png', 'Img/LeftUpCorner.png', 'Img/LeftDownCorner.png', 'Img/RightUpCorner.png', 'Img/RightDownCorner.png', 'Img/CircacroLogo.gif', 'Img/GipsyCircusLogo2.gif', 'Img/homesymbol.gif' ); Preload(ImgPathArr,0,(ImgPathArr.length - 1)); } catch(err) { alert("Main section error : " + err); } /*FUNCTIONS*/ function Preload(ImgPathArr, ImgIdx, ImgIdxMax) { try { if (ImgIdx <= ImgIdxMax) { var objImage = new Image(); objImage.onload=function(){Preload(ImgPathArr, (ImgIdx + 1), ImgIdxMax);}; objImage.onerror=function(){Preload(ImgPathArr, (ImgIdx + 1), ImgIdxMax);}; // preload the image file objImage.src=ImgPathArr[ImgIdx]; } else { GoToMain(); } } catch(err) { alert("Preload error : " + err); } } function GoToMain() { try { var WidthTab = new Array(600,800,1024,1152,1280,1440,1680,1920); var i = WidthTab.length - 1; var res = false; while ((i > 0) && (res == false)) { if (screen.width >= WidthTab[i]) { window.location.replace("main.php?page=Accueil&res=" + WidthTab[i]); res = true; } else { res = false; } i = i - 1; } } catch(err) { alert("GoToMain error : " + err); } } </code>
Please Help 
|
|
vendredi 24 avril 2009 à 12:42:08 |
Re : One more "Stack overflow at line: 0":-/

Bul3
|
Bonjour, à priori, à l'oeil, comme ça, sans tester.... ça devrait baigner même si je t'avoue que je pense que tu te compliques la vie : par exemple : t'es sûr d'avoir besoin de tous ces try/catch ? t'es sûr que cela vient du pré chargement ? oui : ça tombe bien, c'est totalement inutile, voire nuisible : sucre tout ! ;o) non : donc du test de la taille de l'écran ? j'aurais fait "plus simplement", mais ça devrait baigner à retenter quand le preload sera sucré... ;o)
Cordialement [ mon Site] [ M'écrire]  Bul
|
|
vendredi 24 avril 2009 à 13:33:32 |
Re : One more "Stack overflow at line: 0":-/

mono_neurone
|
Bonjour Bul3, Ben oui selon moi aussi ca devrait tourner! lol Bah je me complique la vie ... si on veut. Mon but est d'afficher une page html sur laquelle tu peux choisir (avec des liens) quelle résolution tu veux pour le site (pour ceux qui ont désactivé javascript). Pour ceux dont javascript est actif, ils sont redirigés automatiquement sur le site avec la bonne résolution. J'essaye de contenter tout le monde quoi ;-). Tant que j'y étais, je me suis dit que j'allais précharger quelques unes des images de l'interface du site (pour ceux sans javascript:préchargement avec tag html + css et pour ceux avec :préchargement javascript). Mais avant de rediriger les visiteurs sur mon site, je veux que les images aient fini de loader ! D ou le récursif sur l'évènement onload. C'est un peu plus compliqué que de balancer les liens simplement dans l'image.src mais bon... ;-) Ca correspond mieux à ce que je veux faire. Concernant les try catch, c'était surtout pour resortir des erreurs éventuelles liées à mon stack overflow. Je pense que je les virerai apres. Bref, sans les try catch c'est la meme galere et j'ai pas plus d'info sur l'erreur. La fonction pour la résolution est OK (quand je la mets en commentaire j'ai toujours le stack overflow), c'est donc pas ca. Pour le préchargement : il passe 2 fois sur 3 sans mettre de stack overflow. Je pense donc plutot à une erreur d'allocation/désallocation de resource liée au temps d'execution des fonctions preload les unes par rapport aux autres.Quand je mets moins d'images j'ai moins de stack overflow ! Pourtant comme j'ai mis ca dans l'event onload ca ne doit pas s'executer en parallèle!... En plus en mettant des alert j'ai remarqué que ca se passe apres le chargement de la derniere image mais avant la redirection. Et entre les 2 y a rien qui est fait !!! J 'y comprends rien  Si t'as des idées  ...
|
|
vendredi 24 avril 2009 à 13:49:12 |
Re : One more "Stack overflow at line: 0":-/

Bul3
|
>>sans les try catch c'est la meme galere et j'ai pas plus d'info sur l'erreur
| Navigateurs | Quelques Explications |
|---|
 Chrome
| contrôler page actuelle / Options pour développeurs / Console Javascript |  FireFox
| Outils / Console d'erreurs et mieux : télécharger FireBug |  Internet Explorer
| activer le deboggage : Outils/options Internet/Avancés dans la liste, sous "Navigation" : décocher o Afficher une notification de chaque erreur de script o Désactiver le débogage de Scripts (Internet Explorer) et mieux (pour IE < 8) : télécharger le Debogger IE voir aussi : DebugBar et Companion JS |  K-Meleon
| Outils / Console d'erreurs |  Opera
| Outils / Avancé / Console d'erreurs |  Safari
| Debug / Show JavaScript Console ° modifier Fichier com.apple.Safari.plist situé dans le répertoire : Support:\Documents and Settings\utilisateur \Application Data\Apple Computer\Safari\Preferences\ y ajouter <key>IncludeDebugMenu</key> <true/> |
avec certains : pas à pas possible , mais comme c 'est peut-être une histoire de timeOut ( voir ci dessous ) l'erreur ne sera pas déclenchée ! >>En plus en mettant des alert j'ai remarqué que ca se passe apres le chargement >>de la derniere image mais avant la redirection. j'aurais bien parié sur la dernière image ( au nez ! ) je n'ai rien testé/contrôlé/ ni regardé sérieusement de ton script ! il y a peut-être ( sûrement ) une explication peut-être une histoire de timeOut, mais comme je pense qu'un préchargement est nocif, je ne vais pas regarder beaucoup plus loin ! @+
|
|
vendredi 24 avril 2009 à 14:34:23 |
Re : One more "Stack overflow at line: 0":-/

mono_neurone
|
Merci pour le tableau avec les browser ! Excellent  Vais me garder ca sous le coude. Ok je vais continuer à chercher. Juste une question : pourquoi tu penses que le préchargement est nocif ? Si c'est des grosses images d'accord mais si ce n'est que quelques images d'une 10aine de ko chacunes ? On voit presque pas la différence (temps pour l'affichage de la page) et ca donne un meilleur rendu à l'affichage (ex les coins arrondis qui arrivent par la suite ...) J'aimerais avoir ton idée sur la question. En tous cas merci quand meme d'etre penché sur mon prob  A+
|
|
vendredi 24 avril 2009 à 14:48:40 |
Re : One more "Stack overflow at line: 0":-/

Bul3
|
>>pourquoi tu penses que le préchargement est nocif ? si tu ne fais pas de préchargement, la page s'affiche, est disponible immédiatement, les images : au fur et à mesure, à leur rythme ( enfin au rythme de la connexion ) si tu fais un préchargement, ta page n'est affichée, n'est accessible que lorsque toutes les images sont téléchargées, même celles qu'on ne consultera jamais (!!!) temps d'attente insupportable à la connexion, et inutile ( sauf cas précis qui existent peut-être mais j'aimerais voir ). moi qui n'ai qu'un modem 56k je peux te dire que ce genre d'inutilitaire me font quitter le site avant la fin et que je n'y reviens plus.
|
|
vendredi 24 avril 2009 à 15:12:19 |
Re : One more "Stack overflow at line: 0":-/

mono_neurone
|
Oui je peux comprendre (surtout avec un 56k). Dans mon cas, toutes les images que je charge sont de petites images (apres verif elles font entre 1ko et 7ko) destinées au "look" de la page d'accueil . Autrement dit : toutes les images chargées seront utilisées! Et pour les plus grosses images qui seront affichées, je les laisse en dehors du préchargement expret (à cause de ce temps d'attente). Maintenant c'est vrai que ne voir qu'une page blanche pendant des plombes c'est pas agréable mais je pense quand meme que dans mon cas, pour qq images légères, l'idée n'est pas mauvaise. Apres c'est chacun son point de vue 
|
|
vendredi 24 avril 2009 à 15:28:52 |
Re : One more "Stack overflow at line: 0":-/

Bul3
|
c'est comme tu le sens.... attendre ou pas, perso, je préfère "ne pas attendre" ! "pour moi", rien ne justifie un préchargement, mais c'est comme tu dis : chacun fait comme il sent, et les vaches seront bien gardées. @+
|
|
samedi 25 avril 2009 à 11:20:58 |
Re : One more "Stack overflow at line: 0":-/

Bul3
|
néanmoins... ce qu'utilisent en général les autres "préloader" ( mais tout aussi nocifs ! ) : un Array. var I = new Array(); et dans la fonction, en incrémentant une variable k : I[k] = new Image(); I[k].onload =function() { rappel de la fonction }; I[k].src = l'image à charger[k];  pour tenter de t'expliquer : sans préload : la page est immédiatement disponible les images se chargent/s'affichent avec préload, les images sont chargées, plus lentement que sans, puisque javascript en plus puis il faudra les afficher, en allant les chercher dans le cache si le navigateur juge que c'est mieux que sur le site la page n'est disponible ( visible même ) à la fin du préchargement @+
|
|
mardi 28 avril 2009 à 09:51:20 |
Re : One more "Stack overflow at line: 0":-/

XtremDuke
|
@Bultez : Suivant ce qu'on veut faire, un préchargement d'image peut être nécessaire afin d'éviter des effets de bord. Exemple : http://joof-api.net/demos/smartbox/ "avec préload, les images sont chargées, plus lentement que sans, puisque javascript en plus" >> Je n'ai pas remarqué de differences. "puis il faudra les afficher, en allant les chercher dans le cache si le navigateur juge que c'est mieux que sur le site" >> Il n'y a rien à faire. Le navigateur gère ça tout seul comme un grand.
|
|
Cette discussion est classée dans : gif, img, png, btns, imgpatharr
Répondre à ce message
Sujets en rapport avec ce message
hebergement gratuit [ par MisterPeace ]
Bonjour, je cherche un hebergeur gratuit sans pub, avec minimum de 5MO d'espaceMerci d'avanceParce que nous sommes tous newb quelque part <img src=/i
Changement contenu DIV [ par Nargzul ]
Bonjour,J'ai un petit programme qui tourne avec du AJAX, tous les 250ms, je reçois une mise à jour(ca c'est controlé la ligne d'au desuss le problème
Fenêtre flottante sous FireFox [ par monpseudopasutiliser ]
Bonsoir, je ne connais strictement le JavaScript, mais en récoltant des infromation j'ai réussis à faire une fenêtre "flottante" sur mon site: elle ma
Superposer des images et les combiner [ par Koppa ]
Bonjour !J'aurais besoin d'un code (pas de PHP svp) qui permet de faire ceciLors d'un clique sur une image (0001.gif) elle apparaisse sur l'image de b
Taille des images [ par bizibiz17 ]
bonjour,En fait j'ai un problème avec des images en javascript.J'ai besoin de connaître la taille (en pixels) des images que je charge.Je fais:my_img.
expression reguliere : img html vers bbcode [ par Full62 ]
bonjour,je veut utiliser une expression reguliere pour convertir mon code html vers du bbcode mais cela ne fonctionne pas...voici ce que j'ai mis ://
Erreur c00ce56e [ par ov3rdoze ]
Bonjour à tousJe viens de terminer un site dans lequel j'utilise XMLHttpRequest. En local pas de problème. Je viens d'envoyer le site sur le serveur e
Un appel javascript dans une div [ par cosycorner ]
Bonjour à tous, Je voudrais insérer des images aléatoires dans une div aux dimensions précises.(en background ?)J'ai trouvé ce script qui fonctionne p
Ouvrir une page dans un cadre donné... [ par yatusutya ]
Bonjour, Pour un site Internet à 4 cadres : haut, gauche, bas et centre. Le menu est dans le cadre du bas et je ne parviens pas à ouvrir les pages dan
un appel javascript dans une div [ par cosycorner ]
Bonjour à tous, Je voudrais insérer des images aléatoires dans une div aux dimensions précises.(en background ?)J'ai trouvé ce script qui fonctionne p
Livres en rapport
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|