Sziasztok!
Egy konvertáló weblapomat akartam JavaScript alapokra helyezni optimalizálás céljából. A lényeg, hogy van egy php (kep.php), ami a bemenetén fogadott képfájlt megnyitja és bohóckodik vele, majd egy thumbnailt tesz a kimenetre. Ez azt jelenti, hogy <img> -be rakom ezt a php-t. Sok ilyen képet akarok konvertálni, az eddigi megoldás az volt, hogy a PHP feltöltötte a <body>-ba az összes konvertálandó képet a fent leírt <img> tag-ekben, de így a PHP-re zúdítottam az összes képet szinte egy időben, rengeteg párhuzamos futtatást eredményezve, tetű lassúvá téve így a konverziót.
Az új elképzelésem az volt, hogy body onload event-tel meghívok egy JavaScript függvényt, mely "ismeri" a konvertálandó képeket egy <head>-be töltött tömb révén. Szóval a meghívás "0" paraméterrel kezdődik, elsőre a függvény beszúrja a fent említett <img>-t, azonban <img onload="betolt(1)">-ként, azaz egyet léptet, így legközelebb a tömb második elemét szúrja be, ahol már a harmadik elemre mutat az img onload event. Úgy zárom a ciklust, hogy ha a tömb következő értéke üres, akkor a jelenlegi <img> nem kap onload eventet.
Csakhogy az egész végtelen ciklusban végződik, úgy kell kinyírnom a böngészőt! Megpróbáltam, hogy nem a body onload-ba tettem a start függvényt, hanem body alá illesztett script tag-be, de akkor is betöltődik újra és újra, mintha a js által beszúrt IMG már nem is figyelné az onload eventet, hanem folyamatosan lapátolná az előző IMG onload event-jéből származó kérést...
Kezdő vagyok még JS-ben, ezért lehet, hogy nem vagyok tisztában eléggé a függvények és event-ek világával, itt a forrás, ha valaki tud, segítsen!
Köszönöm!
Kód:<html> <head> <script type="text/javascript"> var kepek = new Array; kepek[0] = "IMG_7057.JPG"; kepek[1] = "IMG_7058.JPG"; kepek[2] = "IMG_7059.JPG"; function betolt(i) { j=i+1; if(kepek[j]==undefined) var load=""; else load="onload=\"betolt("+j+")\""; var ujelem="<img src=\"kep.php?image="+kepek[i]+"\" alt=\""+kepek[i]+"\" title=\""+kepek[i]+"\" "+load+"/> Ez egy kép.<br/>"; document.body.innerHTML+=ujelem; } </script> </head> <body onload="betolt(0)"> </body> </html>
Hasonló témák:
Könyvjelzők