Tengo una amplia galería de imágenes que me gustaría poder mostrar en dispositivos móviles sin que los navegadores se cuelguen o provoquen un desplazamiento brusco. Un montón de complementos para cargar imágenes perezosas, pero ¿hay algo por ahí para descargar las imágenes cuando no está a la vista para guardar la memoria?¿Cómo descargar la imagen cuando no está 'a la vista' para guardar la memoria?
Respuesta
No creo que haya ninguna manera de hacer esto. JavaScript solo contiene referencias a objetos DOM, que a su vez son administrados por el navegador. Por lo tanto, depende completamente del motor de caché de los navegadores determinar cuándo se desasignó un recurso. Y estas decisiones no se basan en si existe o no una referencia de JavaScript a este objeto, sino más bien si la página para la que se cargó el recurso sigue activa. En cualquier caso, el navegador guarda la gestión de la memoria caché automáticamente y no puede influir a través de JavaScript, ya que esto implicaría un tipo de interacción con el sistema de archivos del usuario, que en JavaScript solo está permitido en muy pocos casos con autorización explícita preocupaciones
Esta es una cita de la Ingeniería LinkedIn entrada en el blog del equipo LinkedIn for iPad: 5 techniques for smooth infinite scrolling in HTML5 que es relevante para esta pregunta:
UIWebView/Mobile Safari tienen strict limits for images. Nuestra transmisión está llena de imágenes grandes, por lo que alcanzamos los límites muy rápidamente. Una opción era usar el elemento Canvas de HTML5 para dibujar imágenes without running into memory issues. Sin embargo, descubrimos que dibujar imágenes muy grandes en el lienzo era lento, por lo que tuvimos que tomar otro enfoque: cada vez que una imagen se eliminaba lo suficiente de la pantalla, reemplazamos el atributo "src" de la etiqueta img con una imagen muy pequeña. Esto aseguró que la memoria utilizada para representar imágenes grandes se liberara periódicamente. Además, nos aseguramos de que no introdujimos el empty image src attribute bug.
La solución para reemplazar una imagen pequeña es muy simple y muy funcional, gracias por la sugerencia :) –
Este es un artículo antiguo, pero todavía útil: http://www.vargatron.com/2010/08/ipad-html5-js-memory-management/
Para la fijación de los controladores de eventos para ser avisado en un elemento de imagen que entran y salen del puerto de vista con el fin de reemplazar a su atributo src
con la url img real (en visor) o la url marcador de posición (fuera de la ventana gráfica) existen estos plugins:
http://static.pixeltango.com/jQuery/Bullseye/ http://imakewebthings.com/jquery-waypoints/
Sustitución de laEl valor de 0 atributos todavía no garantiza que el navegador libere memoria, pero es una buena pista para el recolector de basura. Y, de todos modos, si la imagen no se libera de inmediato, aún estará en caché si el usuario decide regresar a ella.
- 1. Problemas al sobrescribir (volver a guardar) la imagen cuando se configuró como fuente de la imagen
- 2. Evento de la galería a "cuando la imagen está centrada"
- 3. ¿Se puede descargar a la memoria interna?
- 4. Cómo rotar la imagen y guardar la imagen
- 5. ¿Cómo puedo verificar si la vista de la imagen está vacía o no
- 6. ¿Cómo guardar la imagen junto con la vista de superficie en Android?
- 7. ¿Cómo abrir la vista con el teclado que aparece cuando la vista ya está cargada?
- 8. aplicación para el iPhone con múltiples puntos de vista/subvistas: La memoria no se está desasignado
- 9. La vista no está vinculada al esquema?
- 10. ¿Cómo cambio la imagen cuando el botón está desactivado?
- 11. iphone, al guardar la imagen con "renderInContext" en el dispositivo, ¿la imagen está borrosa?
- 12. Enfoque en android: mantener la imagen a la vista
- 13. Guardar imagen en la galería
- 14. ¿Cómo puedo descargar y guardar imágenes de la web?
- 15. iPhone - guardando la vista actual como imagen
- 16. Ajustar la imagen en la vista web
- 17. Ajustar la vista de desplazamiento cuando el teclado está activo
- 18. No se puede guardar la imagen a presentar correctamente con la biblioteca cimg
- 19. Descargar la imagen de la URL usando el código php?
- 20. ¿Cómo calcular la memoria necesaria para procesar una imagen?
- 21. Pharo Gofer, ¿puede recurrir a la memoria caché del paquete local cuando está fuera de línea?
- 22. Grand Central Dispatch: ¿muestra la primera imagen cuando está cargada?
- 23. cacao: ¿cómo hacer una vista a la imagen?
- 24. Android Guardar imagen en la tarjeta SD
- 25. cuando se lanzará la memoria?
- 26. ¿Cómo comprobar si la aplicación está unida a la CPU o ligada a la memoria?
- 27. Backbone.js - ¿Agregar eventos de selección cuando la vista está activa?
- 28. python guardar en la memoria sqlite
- 29. Cómo mostrar el borde a la vista de imagen?
- 30. Cómo guardar la imagen en una base de datos?
Me gustaría cuestionar la eficacia de algo así. ¿Sabes * que tienes un problema de memoria y no algo más? Moreso, "descargar" las imágenes podría no borrarlas de la memoria. –
depende del enfoque. ¿Cómo se vería la galería? – Joseph