Nonostante sia una delle tecniche più usate in jQuery e nonostante jQuery continui a supportare l'evento load
, sta di fatto che tale evento è stato deprecato. Vediamo il perché di questa scelta.
La documentazione affronta il caso specifico delle immagini e afferma che per questo evento ci sono le seguenti controindicazioni:
Un problema comune che gli sviluppatori cercano di risolvere utilizzando l'evento
load()
è eseguire una funzione quando un'immagine (o un insieme di immagini) ha finito di caricarsi. Ci sono tuttavia diverse controindicazioni che dovrebbero essere prese in considerazione. Queste sono:
- L'evento non funziona in modo coerente nei vari browser
- L'evento non funziona correttamente in WebKit se l'attributo
src
dell'immagine viene impostato sullo stesso valore di prima- L'evento non risale correttamente l'albero del DOM nella fase di bubbling
- L'evento può non funzionare se le immagini sono già presenti nella cache del browser
Per questi motivi si sconsiglia l'uso di tale evento in questo scenario. Per quanto riguarda invece la sua applicazione tradizionale all'oggetto window
, gli sviluppatori di jQuery incoraggiano invece l'utilizzo dell'evento ready
connesso all'oggetto document
.