2009-11-15 13 views
28

Stavo navigando in rete e ho visto qualcosa che non avevo mai visto prima. su questo sito: http://blogof.francescomugnai.com/2009/04/mega-roundup-of-geektool-scripts-inspiration-gallery/Le immagini vengono caricate quando entrano nella sezione visibile del browser?

Quando si navigare in basso nella pagina, le immagini vengono caricate solo quando sono nella parte visibile del browser. Non l'ho mai visto prima e mi chiedevo se qualcun altro ha e come esattamente lo si farebbe.

Suppongo che si tratti di una specie di plugin Wordpress (è quello che sta usando) ma non ne sono sicuro. E 'javascript? Si stanno effettivamente caricando sul caricamento della pagina, ma diventano visibili in seguito per un effetto "snazzy" o è effettivamente utile per i tempi di caricamento delle pagine più rapidi?

+0

Come nota a margine, cellulari utilizzano meno energia se si fa tutto il vostro scaricano in uno scoppio al posto di tante brevi raffiche. Questo plug-in probabilmente ridurrebbe la durata della batteria del cellulare per gli utenti. Piccolo impatto presumo, ma notevole. Ecco un Tech Talk che esegue misurazioni molto più serie su questo di quanto non potrei mai fare: http://www.youtube.com/watch?v=Il4swGfTOSM Fondamentalmente raccomandano che tutti i contenuti below-the-fold si caricino tutti contemporaneamente come download secondario dopo che l'utente ha fatto scorrere un po '. –

risposta

12

LazyLoad non è più disponibile secondo il sito web. Apparentemente il codice non funziona più sui nuovi browser e l'autore non ha tempo di aggiornarlo.

Il plug-in "visualizzato" funziona bene per me.

http://plugins.jquery.com/appear/

Esso consente di specificare una funzione di callback per un elemento. La funzione di callback è chiamata quando l'elemento appare in vista. Dal sito:

$('#foo').appear(function() { 
    $(this).text('Hello world'); 
}); 
+3

All'epoca in cui ho scritto la mia risposta (circa 9 mesi fa), LazyLoad non veniva mantenuto dal suo autore. Forse l'autore ha ora iniziato a lavorarci di nuovo. Si prega di tenere presente la data in cui è stata data una risposta a una domanda. – Sanjay

+1

jquery-appear è scomparso (hah!) Da Google Code. LazyLoad appare (hah!) Per essere resuscitato, vedi http://www.appelsiini.net/projects/lazyload. – bouke

2

Se si guarda alla sorgente della pagina si fa riferimento, contiene questo pezzo di codice:

jQuery(document).ready(function($){ 
    jQuery(".SC img").lazyload({ 
    effect:"fadeIn", 
    placeholder: "http://blogof.francescomugnai.com/wp-content/plugins/jquery-image-lazy-loading/images/grey.gif" 
    }); 
}); 

ho il sospetto che è come stanno realizzando l'effetto. Esso utilizza il plugin jQuery LazyLoad, che può essere trovato qui:

http://www.appelsiini.net/projects/lazyload

13

"wp-content/plugins/jquery-image-lazy-loading"

caricatore pigro è un plugin jQuery scritto in JavaScript. Ritarda il caricamento delle immagini nelle (lunghe) pagine Web. Le immagini al di fuori della finestra di visualizzazione (parte visibile della pagina Web ) non vengono caricate prima che l'utente si sposti su di esse. Questo è l'opposto del precaricamento dell'immagine .

L'utilizzo del carico lazy su lunghe pagine Web contenente molte immagini di grandi dimensioni rende più veloce il caricamento della pagina . Il browser sarà nello stato pronto dopo il caricamento delle immagini visibili . In alcuni casi può anche aiutare per ridurre il carico del server.

http://www.appelsiini.net/projects/lazyload

Così sembra che passa attraverso ogni immagine specificata o all'interno del contesto di un elemento e sostituisce lo src con una gif segnaposto di fronte alle immagini completamente carico, salva l'originale URI e quando l'immagine è "visibile" sostituisce il segnaposto con l'immagine reale.

+0

Il plugin LazyLoad non è più disponibile secondo il suo sito web. Vedi la mia risposta qui sotto. – Sanjay

+2

Il carico pigro è sempre stato disponibile. Non è mai stato rimosso. Tuttavia, il nuovo browser insiste nel caricare le immagini anche quando l'attributo src viene rimosso. Quindi ora devi modificare l'HTML affinché funzioni. Finalmente ho avuto il tempo di aggiornare la documentazione. Rimosso anche tutto il vecchio codice che non funziona più. –

Problemi correlati