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
[SHAREPOINT 2010] CRéER ET PACKAGER UNE APPLICATION SILVERLIGHT POUR SHAREPOINT 2010[SHAREPOINT 2010] CRéER ET PACKAGER UNE APPLICATION SILVERLIGHT POUR SHAREPOINT 2010 par neodante
L'intégration native de Silverlight dans SharePoint 2010 représente une avancée majeure dans la conception des applications sur la plateforme SharePoint. Et pour cause, Silverlight repousse les limites du Web de SharePoint en offrant une expérience plus r...
Cliquez pour lire la suite de l'article par neodante [MIX10] KEYNOTE PREMIèRE JOURNéE - WINDOWS PHONE 7 ET SILVERLIGHT 4[MIX10] KEYNOTE PREMIèRE JOURNéE - WINDOWS PHONE 7 ET SILVERLIGHT 4 par cyril
Comme l'année dernière, me revoici à Las Vegas pour Mix10. Ce matin a eu lieu le premier keynote animé par Scott Guthrie. Le keynote s'est déroulé en 2 parties : Silverlight 4.0 et Windows Phone 7 Silverlight 4.0 Le taux de pénétration de Silverli...
Cliquez pour lire la suite de l'article par cyril [MIX10] RELEASE CANDIDATE DE SILVERLIGHT 4 ET RIA SERVICES[MIX10] RELEASE CANDIDATE DE SILVERLIGHT 4 ET RIA SERVICES par Audrey
C'est enfin officiel, grâce au MIX 2010, les Release Candidate de Silverlight 4 et de RIA Services sont sorties ! Pour les télécharger, voici les liens : Silverlight 4 RC : http://silverlight.net/getstarted/silverlight-4/ RIA Services RC : http://www.micr...
Cliquez pour lire la suite de l'article par Audrey PREMIERES IMPRESSIONS SUR WINDOWS PHONE 7PREMIERES IMPRESSIONS SUR WINDOWS PHONE 7 par odewit
Il est toujours passionnant de decouvrir une nouvelle plate-forme. C'est bien entendu le cas pour Windows Phone 7. Mais au-dela de la passion technique, j'ai le sentiment qu'il s'agit d'un coup de maitre en termes d'ergonomie (tres fluide et epuree) e...
Cliquez pour lire la suite de l'article par odewit [WINDOWSPHONE7] LECTEUR DE FLUX RSS[WINDOWSPHONE7] LECTEUR DE FLUX RSS par Vko
Parce que j'aime pas tester à moitié, je me suis amusé à développer un petit lecteur de flux RSS avec un look qui vous rappellera surement quelque chose :) La RC de Visual Studio est plutôt molle mais fonctionne correctement. L'émulateur est pas...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|