2009-11-15 2 views
28

Je naviguais sur le Web et j'ai vu quelque chose que je n'avais jamais vu auparavant. sur ce site: http://blogof.francescomugnai.com/2009/04/mega-roundup-of-geektool-scripts-inspiration-gallery/Les images sont-elles chargées lorsqu'elles entrent dans la section visible du navigateur?

Lorsque vous naviguez vers le bas de la page, les images se chargent uniquement quand ils sont dans la partie visible du navigateur. Je n'ai jamais vu cela auparavant et je me demandais si quelqu'un d'autre a et comment exactement on le ferait.

Je suppose que c'est une sorte de plugin Wordpress (c'est ce qu'il utilise) mais je ne suis pas sûr. Est-ce que c'est javascript? Sont-ils en train de charger sur le chargement de la page, mais deviennent visibles plus tard pour un effet "snazzy" ou est-ce réellement utile pour des temps de chargement de la page plus rapide?

+0

Comme une note de côté, les téléphones cellulaires utilisent moins d'énergie si vous faites tout votre téléchargement dans une rafale au lieu de plusieurs brèves rafales. Ce plugin réduirait probablement la durée de vie de la batterie du téléphone portable pour vos utilisateurs. Petit impact je suppose, mais notable. Voici un Tech Talk qui fait des mesures beaucoup plus sérieuses à ce sujet que je ne pourrais jamais le faire: http://www.youtube.com/watch?v=Il4swGfTOSM Ils recommandent fondamentalement que tout le contenu au-dessous de la ligne de charge à la fois comme un téléchargement secondaire après que l'utilisateur a fait défiler un peu. –

Répondre

12

LazyLoad n'est plus disponible en ligne. Apparemment, le code ne fonctionne plus sur les nouveaux navigateurs et l'auteur n'a pas le temps de le mettre à jour.

Le plug-in "look" fonctionne bien pour moi.

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

Il vous permet de spécifier une fonction de rappel pour un élément. La fonction de rappel est appelée lorsque l'élément apparaît dans la vue. Sur le site:

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

Au moment où j'ai écrit ma réponse (il y a environ 9 mois), LazyLoad n'était pas maintenu par son auteur. Peut-être que l'auteur a recommencé à travailler dessus. Veuillez garder à l'esprit la date à laquelle une question a été répondue. – Sanjay

+1

jquery-appear a disparu (hah!) De Google Code. LazyLoad semble (hah!) Avoir ressuscité, voir http://www.appelsiini.net/projects/lazyload. – bouke

2

Si vous regardez la source de la page que vous avez mentionné, il contient ce morceau de code:

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" 
    }); 
}); 

Je pense que la façon dont est qu'ils ont accompli l'effet. Il utilise le plugin LazyLoad jQuery, qui se trouve ici:

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

13

"wp-content/plugins/jquery-image-chargement paresseux"

loader Lazy est un plugin jQuery écrit en JavaScript. Il retarde le chargement des images dans les pages Web (longues). Les images en dehors de la fenêtre d'affichage (partie visible de la page Web ) ne seront pas chargées avant que l'utilisateur n'y défile. Ceci est l'opposé de préchargement d'image. L'utilisation de la charge paresseuse sur les longues pages Web contenant de nombreuses grandes images accélère le chargement de la page . Le navigateur sera en état prêt après le chargement des images visibles. Dans certains cas, il peut également aider à réduire la charge du serveur.

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

Il semble donc qu'il passe par chaque image spécifiée ou à l'intérieur du contexte d'un élément et remplace le src avec un gif espace réservé avant que les images entièrement de charge, enregistre l'URI d'origine et lorsque l'image est "visible" il remplace l'espace réservé par l'image réelle.

+0

Le plugin LazyLoad n'est plus disponible sur son site. Voir ma réponse ci-dessous. – Sanjay

+2

Lazy Load a toujours été disponible. Il n'a jamais été retiré. Cependant, le nouveau navigateur insiste pour charger les images même lorsque l'attribut src est supprimé. Ainsi, vous devez maintenant modifier HTML pour que cela fonctionne. J'ai finalement eu le temps de mettre à jour la documentation. Également supprimé tout ancien code qui ne fonctionne plus. –

Questions connexes