⊗jsSpAsnIL 153 of 294 menu

Ασύγχρονη φόρτωση εικόνων στο JavaScript

Οι εικόνες που δημιουργούνται δυναμικά μέσω JavaScript, φορτώνονται επίσης ασύγχρονα. Ας εξετάσουμε για παράδειγμα τον ακόλουθο κώδικα:

let image = document.createElement('img'); image.src = 'img.png'; document.body.appendChild(image);

Όπως βλέπετε, εδώ δημιουργούμε την ετικέτα img, γράφουμε στο src της τη διαδρομή προς την εικόνα και τοποθετούμε αυτήν την εικόνα στο body. Ωστόσο, η εικόνα δεν θα εμφανιστεί αμέσως στη σελίδα. Το γεγονός είναι ότι όταν γράψαμε στο src τη διαδρομή προς την εικόνα - το πρόγραμμα περιήγησης αρχίζει να κατεβάζει αυτήν την εικόνα από τον ιστότοπο. Μόλις η εικόνα κατεβεί, μόνο τότε το πρόγραμμα περιήγησης θα μπορέσει να την εμφανίσει.

Εάν η εικόνα είναι αρκετά μεγάλη, και η ταχύτητα διαδικτύου αρκετά μικρή, τότε ο χρήστης του ιστότοπου για κάποιο χρονικό διάστημα θα μπορέσει να "θαυμάσει" μια κενή εικόνα - μέχρι να φορτωθεί.

Στην πραγματικότητα, η ετικέτα img έχει το συμβάν load, που ενεργοποιείται όταν ολοκληρωθεί η φόρτωση της εικόνας:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { // θα ενεργοποιηθεί όταν φορτωθεί η εικόνα });

Μπορούμε να το χρησιμοποιήσουμε αυτό, για να τοποθετήσουμε την εικόνα στη σελίδα, μόνο όταν αυτή η εικόνα έχει φορτωθεί:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); // τοποθετούμε όταν φορτωθεί });

Η εικόνα δεν είναι απαραίτητο να φορτωθεί: μπορεί να συμβεί ότι η διαδρομή προς την εικόνα είναι λανθασμένη, ή να υπάρξει διακοπή του διαδικτύου, βλάβη του διακομιστή του ιστότοπου ή κάτι παρόμοιο. Με άλλα λόγια - εξαιρετική κατάσταση. Σε αυτήν την περίπτωση, δεν θα ενεργοποιηθεί το συμβάν load, αλλά το συμβάν error:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); }); image.addEventListener('error', function() { // σφάλμα φόρτωσης εικόνας });

Δημιουργήστε ένα κουμπί, upon pressing which θα φορτώνεται μια εικόνα. Εμφανίστε την εικόνα, όταν θα έχει φορτωθεί. Εμφανίστε ένα μήνυμα σε περίπτωση προβλημάτων με τη φόρτωση της εικόνας.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη