Pregunta

Tengo un gran conjunto de datos (3500 algunos objetos) que regresa desde un servidor remoto a través de HTTP. Actualmente se está presentando los datos en un NSCollectionView. Un aspecto de los datos es un paquete de ruta al servidor para una pequeña imagen que representa los datos (piensan miniatura para simplificar).

Vinculaciones funciona fantásticamente para los datos que ya se devuelven, y unir la imagen a través de una unión valueurl es fácil de hacer. Sin embargo, la interfaz de usuario es muy lento cuando se desplaza a través del conjunto de datos -. Que me hace pensar que el NSCollectionView es recuperar todos los datos de la imagen en lugar de sólo los datos de imagen se utilizan para mostrar las imágenes visibles actualmente

Yo tenía la impresión de que los controles de cacao eran lo suficientemente inteligente como para recuperar sólo los datos de la información que está siendo en realidad la salida de la interfaz de usuario a través de la carga diferida. Esto ciertamente parece ser el caso de NSTableView -. Pero podría estar mal guiados en este pensamiento

debe actuar vinculante valueurl con pereza y, por otra parte, en caso de que actúe perezosamente en un NSCollectionView?

Me podría crear un mecanismo de caché (de hecho ya tengo una cosa en lugar de otra aplicación - ver mi post aquí si está interesado Poblando NSImage con los datos de un NSURLConnection asíncrono ) pero realmente no quiero ir a esta ruta si yo no tengo que para esta específica aplicación que el usuario podría potencialmente cambiar los conjuntos de datos a menudo y sólo puede querer pequeños subconjuntos de los datos.

Cualquier enfoques sugeridos?

Gracias!

Actualizar

Después de algunas pruebas más, parece que el problema surge debido a una acción de desplazamiento a través del conjunto de datos hace que cada imagen que se solicita desde el servidor. Una vez que todas las imágenes han sido pasado por alto en el conjunto de datos de la respuesta es muy rápida.

Así que la pregunta ... ¿hay alguna manera de desactivar el valueurl ir a buscar mientras se desplaza y volver a encenderla cuando se desplaza ha terminado?

¿Fue útil?

Solución

Mi solución es utilizar un mecanismo de caché personalizado como el que yo utilizo para otra aplicación. El problema que se manifiesta debido a medida que se desplaza imágenes del pasado que aún no se han descargado, éste se disparadores de control para ir a buscar el como archivos aún no descargados.

Una vez descargado las imágenes están disponibles normaliza la velocidad de desplazamiento a nivel local y por lo tanto. La solución es comprobar para ver si la imagen está disponible a nivel local y presentar un gráfico alternativo aplicación de haz mientras la imagen se está descargando en el fondo. Una vez que la imagen ha sido descargado, actualizar el modelo con la imagen sustituyendo la imagen de código auxiliar que venía del paquete.

Esto deja a la interfaz de usuario en un estado muy sensible en todo, deja al usuario con la capacidad de interactuar y permite una gestión de encargo del fondo de las imágenes.

Por supuesto, habría sido agradable si cacao Identificación del todo esto por mí, pero entonces ¿qué estaría queda por hacer? : -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top