Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

188
Views
Cómo cargar imágenes de forma dinámica (o perezosa) cuando los usuarios las desplazan a la vista

He notado esto en numerosos sitios web "modernos" (por ejemplo, búsqueda de imágenes de Facebook y Google) donde las imágenes debajo del pliegue se cargan solo cuando el usuario se desplaza hacia abajo en la página lo suficiente como para llevarlos dentro de la región de la ventana gráfica visible ( al ver la fuente, la página muestra X número de etiquetas <img> pero no se obtienen del servidor de inmediato ). Cómo se llama esta técnica, cómo funciona y en cuántos navegadores funciona. ¿Y hay un complemento de jQuery que pueda lograr este comportamiento con una codificación mínima?

Editar

Bonificación: alguien puede explicar si hay un evento "onScrolledIntoView" o similar para elementos HTML. Si no, ¿cómo funcionan estos complementos?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Algunas de las respuestas aquí son para página infinita. Lo que pide Salman es la carga diferida de imágenes.

Enchufar

Manifestación

EDITAR: ¿Cómo funcionan estos complementos?

Esta es una explicación simplificada:

  1. Encuentre el tamaño de la ventana y encuentre la posición de todas las imágenes y sus tamaños
  2. Si la imagen no está dentro del tamaño de la ventana, reemplácela con un marcador de posición del mismo tamaño
  3. Cuando el usuario se desplaza hacia abajo y la posición de la imagen <desplazamiento + altura de la ventana, la imagen se carga
over 4 years ago · Santiago Trujillo Report

0

Se me ocurrió mi propio método básico que parece funcionar bien (hasta ahora). Probablemente hay una docena de cosas que algunos de los guiones populares abordan en las que no he pensado.

Nota : esta solución es rápida y fácil de implementar pero, por supuesto, no es excelente para el rendimiento. Definitivamente mire el nuevo Intersection Observer como lo menciona Apoorv y lo explica desarrolladores.google si el rendimiento es un problema.

El JQuery

 $(window).scroll(function() { $.each($('img'), function() { if ( $(this).attr('data-src') && $(this).offset().top < ($(window).scrollTop() + $(window).height() + 100) ) { var source = $(this).data('src'); $(this).attr('src', source); $(this).removeAttr('data-src'); } }) })

Ejemplo de código html

 <div> <img src="" data-src="pathtoyour/image1.jpg"> <img src="" data-src="pathtoyour/image2.jpg"> <img src="" data-src="pathtoyour/image3.jpg"> </div>

Explicado

Cuando se desplaza la página, se comprueba cada imagen de la página.

$(this).attr('data-src') - si la imagen tiene el atributo data-src

y qué tan lejos están esas imágenes de la parte inferior de la ventana...

$(this).offset().top < ($(window).scrollTop() + $(window).height() + 100)

ajusta el +100 a lo que quieras (-100 por ejemplo)

var source = $(this).data('src'); - obtiene el valor de data-src= aka la url de la imagen

$(this).attr('src', source); - pone ese valor en el src=

$(this).removeAttr('data-src'); - elimina el atributo data-src (para que su navegador no desperdicie recursos jugando con las imágenes que ya se han cargado)

Agregar al código existente

Para convertir su html, en un editor simplemente busque y reemplace src=" con src="" data-src="

over 4 years ago · Santiago Trujillo Report

0

( Editar: reemplazó los enlaces rotos con copias archivadas)

Dave Artz de AOL dio una excelente charla sobre optimización en la jQuery Conference Boston el año pasado. AOL usa una herramienta llamada Sonar para carga a pedido basada en la posición de desplazamiento. Verifique el código para conocer los detalles de cómo compara scrollTop (y otros) con el desplazamiento del elemento para detectar si parte o todo el elemento es visible.

sonda jQuery

Dave habla sobre Sonar en estas diapositivas . Sonar comienza en la diapositiva 46, mientras que la discusión general sobre "carga según demanda" comienza en la diapositiva 33.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!